TS中的索引签名类型

当我们无法确定对象中有哪些属性( 或者说对象中可以出现任意多个属性 ), 此时, 就用到索引签名类型了

图片

我们可以使用[key: string]来约束该接口中允许出现的属性名称, 表示只要是string类型的属性名称, 都可以出现在对象中, 正是因为这样的写法, 对象中就可以出现任意多个属性, 比如我们的a,b,c, 在这里, key只是一个占位符, 可以将其换成任意合法的变量名称

数组对应的泛型接口中也使用了索引签名类型

在js中, 我们知道数组也是一类特殊的对象, 数组的索引是数值类型

在我们的数组中也可以出现任意多个元素, 所以, 在数组对应的泛型接口中, 也会用到索引签名类型

我们来写个例子

图片

在这里, 我们其实也是使用[key: number]来作为索引签名类型, 上面写法, 其实就是只要是number类型的索引都可以出现在数组中, 数组中也可以出现任意多个元素

我们可以写一个forEach, 然后通过ctrl+鼠标左击获取到forEach类型, 翻到Array最下面, 就可以看到索引签名类型了

图片

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/415876.html

(0)
联系我们
联系我们
分享本页
返回顶部