当我们无法确定对象中有哪些属性( 或者说对象中可以出现任意多个属性 ), 此时, 就用到索引签名类型了
我们可以使用[key: string]来约束该接口中允许出现的属性名称, 表示只要是string类型的属性名称, 都可以出现在对象中, 正是因为这样的写法, 对象中就可以出现任意多个属性, 比如我们的a,b,c, 在这里, key只是一个占位符, 可以将其换成任意合法的变量名称
数组对应的泛型接口中也使用了索引签名类型
在js中, 我们知道数组也是一类特殊的对象, 数组的索引是数值类型
在我们的数组中也可以出现任意多个元素, 所以, 在数组对应的泛型接口中, 也会用到索引签名类型
我们来写个例子
在这里, 我们其实也是使用[key: number]来作为索引签名类型, 上面写法, 其实就是只要是number类型的索引都可以出现在数组中, 数组中也可以出现任意多个元素
我们可以写一个forEach, 然后通过ctrl+鼠标左击获取到forEach类型, 翻到Array最下面, 就可以看到索引签名类型了
声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/415876.html