键入'键'不能用于索引类型'对象'

时间:2017-10-20 09:58:11

标签: typescript types typescript2.0

尝试使用声音类型实现功能性采摘,但我做错了什么:

function pluck<Object extends {}, Key = keyof Object>(key: Key): (o: Object) => Object[Key] {
  return object => object[key];
}

TS错误:

  

键入&#39;键&#39;不能用于索引类型&#39;对象&#39;

1 个答案:

答案 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是指定类型的默认值,但不以任何方式约束类型。