typescript - ทำไมชนิดของค่าของวัตถุจึงไม่ถูกอ้างอิงเมื่อคีย์ถูกส่งกลับจากฟังก์ชัน?
นี่เป็นพฤติกรรมที่คาดไว้หรือไม่? เมื่อฉันส่งสตริงไปยังออบเจ็กต์ TypeScript จะสันนิษฐานประเภทค่าของมัน แต่เมื่อกุญแจถูกส่งเป็นค่าที่ฟังก์ชันคืนกลับ - มันจะไม่ทำเช่นนั้น
function getB(): 'b' {
return 'b';
}
type A = {
b: (arg: string) => void;
};
// Parameter 'arg' implicitly has an 'any' type.
const a = {
[getB()]: (arg) => {
console.log(arg);
},
} as A;
// This is OK
const b = {
['b']: (arg) => {
console.log(arg);
},
} as A;
// This is also OK
const key = getB();
const c = {
[key]: (arg) => {
console.log(arg);
},
} as A;
ฉันคาดหวังว่าประเภทค่าจะถูกอนุมานเมื่อคีย์มาจากฟังก์ชัน