【问题标题】: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'
【问题讨论】:
标签:
typescript
types
typescript2.0
【解决方案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 指定类型的默认值,但不以任何方式限制类型。