typescript - ¿Por qué no se infiere el tipo de valor de un objeto cuando la clave se devuelve desde una función?
¿Es un comportamiento esperado o no? Cuando paso una cadena a un objeto, TypeScript infiere su tipo de valor, pero cuando la clave se pasa como el valor de retorno de una función, no lo hace.
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;
Espero que el tipo de valor se infiera cuando la clave provenga de una función