类型“键”不能用于索引类型“对象”
Posted
技术标签:
【中文标题】类型“键”不能用于索引类型“对象”【英文标题】:Type 'Key' cannot be used to index type 'Object' 【发布时间】:2018-04-01 11:33:40 【问题描述】:尝试使用声音类型实现功能性 pluck,但我做错了:
function pluck<Object extends , Key = keyof Object>(key: Key): (o: Object) => Object[Key]
return object => object[key];
TS 错误:
类型'Key'不能用于索引类型'Object'
【问题讨论】:
【参考方案1】:你想要Key extends keyof Object
:
function pluck<Object extends , Key extends keyof Object>(key: Key): (o: Object) => Object[Key]
return object => object[key];
泛型中的语法T = S
指定类型的默认值,但不以任何方式限制类型。
【讨论】:
以上是关于类型“键”不能用于索引类型“对象”的主要内容,如果未能解决你的问题,请参考以下文章
嵌套对象 -> 元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型
SQL有三个类型的索引,唯一索引 不能有重复,但聚集索引,非聚集索引可以有重复