Typescript(2.0)没有给出错误:
let x: { [index: string]: Object } = {1: 2}
我发现有两个潜在的错误:
为什么会通过?
答案 0 :(得分:2)
支持的索引签名有两种类型:字符串和数字。 可以支持两种类型的索引器,但类型 从数字索引器返回的必须是返回类型的子类型 来自字符串索引器。这是因为当用数字索引时, 在索引之前,JavaScript实际上会将其转换为字符串 一个东西。这意味着使用100(数字)的索引是相同的 用“100”(一个字符串)作为索引的东西,所以两者需要 是一致的。
当您使用数字作为索引而不是字符串时,它接受它的原因 索引始终是字符串。
Any
is explained文档的部分中,注意到:... Object类型的变量只允许您为其分配任何值 他们......
使用以下示例:
Object
基本上,{{1}}可以是任何东西。