下边这段代码是TypeScript教程里的关于索引类型的接口的说明,我始终没看懂。我想问一下这个length和name是谁的属性什么?他规定了什么? length是索引类型的的长度吗?name是接口的返回值类型还是什么?????interface NumberDictionary {
[index: string]: number;
length: number; // 可以,length是number类型
name: string // 错误,`name`的类型不是索引类型的子类型}
1 回答

www说
TA贡献1775条经验 获得超8个赞
length和name是NumberDictionary的属性。
规定了什么,看字面上的意思,应该是字典的长度和名字吧。
这个length只是定义的一个属性而已,不是你说索引类型的长度。
name 也是一个属性而已。因为这个索引类型返回的是number型,而这里name定义的是string类型,所以那里是报错的。
在这里接口你需要什么就去定义什么,比如说你还需要知道这个NumberDictionary的价格,你可以自己再加一个属性
interface NumberDictionary { [index: string]: number; length: number; // 可以,length是number类型 name: string; // 错误,`name`的类型不是索引类型的子类型 price: number }
添加回答
举报
0/150
提交
取消