来自规范:
当对象文字由包含字符串索引签名的类型进行上下文类型化时,对象文字的结果类型包括字符串索引签名,其中联合类型为对象文字中声明的属性的类型,如果对象文字为空,则为未定义类型
它是什么意思 - 对象文字的结果类型?
我们说
var a:{[key:string]:any} = {a:1,b:"2"};
a
的类型为{[key:string]:any}
此声明中对象文字的结果类型在哪里?
代码中是否有任何地方可以看到生成的对象文字类型?
答案 0 :(得分:1)
代码中是否有任何地方可以看到生成的对象文字类型?
以下代码示例
declare const str: 'a' | 'b';
let foo = { a: 1, b: "2" }[str]; // typeof foo is string | number