类型“键”不能用于索引类型“对象”

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 指定类型的默认值,但不以任何方式限制类型。

【讨论】:

以上是关于类型“键”不能用于索引类型“对象”的主要内容,如果未能解决你的问题,请参考以下文章