关于索引接口的问题
来源:3-11 接口 - 额外属性检查+函数类型+可索引的类型

Mi_Rai
2021-09-10
两个问题,望解答,谢谢!
1、这里定义的 index 有什么特殊含义吗,还是随便定义的?换成其他 abc 行吗?
还是说调用 myArray[0]、myArray[1] 这种必须使用 [index: number] 的形式?
interface StringArray {
[index: number]: string
}
2、[index: string] 这种写法和 length 这种写法有什么区别吗?
是不是 [index: string] 表示可以调用 myArray[0]、myArray[1]
而 length 只能调用 myArray[length] ?
interface NumberDictionary {
[index: string]: number;
length: number; // 可以,length是number类型
name: string // 错误,`name`的类型与索引类型返回值的类型不匹配
}
写回答
1回答
-
interface StringArray { [index: number]: string }
是一种索引签名index 只是表明 key 的值number 表示 key 的类型这里用 index 是从语义化的角度考虑的
interface StringArray { [a: number]: string }
你这么写也是 ok 的但语义化就差了。
132021-09-14
相似问题