ইনপুট হিসাবে এখনও একটি কী এবং মান দেওয়া একটি মানকে আমি কোনও অবজেক্টের সম্পত্তি নির্ধারণ করতে সক্ষম হতে চাই তবে এখনও মানটির ধরণটি নির্ধারণ করতে সক্ষম হতে চাই। এটি ব্যাখ্যা করা কিছুটা কঠিন তাই এই কোডটি সমস্যাটি প্রকাশ করতে পারে:
type JWT = { id: string, token: string, expire: Date };
const obj: JWT = { id: 'abc123', token: 'tk01', expire: new Date(2018, 2, 14) };
function print(key: keyof JWT) {
switch (key) {
case 'id':
case 'token':
console.log(obj[key].toUpperCase());
break;
case 'expire':
console.log(obj[key].toISOString());
break;
}
}
function onChange(key: keyof JWT, value: any) {
switch (key) {
case 'id':
case 'token':
obj[key] = value + ' (assigned)';
break;
case 'expire':
obj[key] = value;
break;
}
}
print('id');
print('expire');
onChange('id', 'def456');
onChange('expire', new Date(2018, 3, 14));
print('id');
print('expire');
onChange('expire', 1337); // should fail here at compile time
print('expire'); // actually fails here at run time
আমি পরিবর্তন চেষ্টা value: anyকরতেvalue: valueof JWT কিন্তু যে কাজ করে নি।
আদর্শভাবে, onChange('expire', 1337)কারণ ব্যর্থ হবে1337 একটি তারিখ টাইপ নয়।
value: anyপ্রদত্ত কীটির মান হতে কীভাবে আমি পরিবর্তন করতে পারি ?
tupleমানগুলি থেকে একটি তৈরি করতে চাই । এটা করার কোন সুযোগ আছে কি?