打字稿中的可索引类型

时间:2018-10-16 06:47:57

标签: javascript typescript

interface NumberDictionary{
    [index: string]: number;
    length: number; //ok, length is a number
    name: string;   //error, the type of 'name' is not a subtype of the indexer
}

我不明白为什么这个名字不能是字符串...

1 个答案:

答案 0 :(得分:0)

请遵循上述其他贡献者的文章。

也就是说,您已经声明了计算属性[index: string]: number,这基本上意味着从现在开始,每个字符串变量都将为number类型。第二行不会给您错误,因为您刚刚说过名为length的显式属性也是number。在最后一行中,您已经说过属性name的类型为string,这是不正确的,因为在第一行中,您已经说过所有将来的变量都是number