类型 'Key' 不能用于索引类型 'Object'

Type 'Key' cannot be used to index type 'Object'

尝试用声音类型实现功能性弹奏,但我做错了:

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

TS 错误:

Type 'Key' cannot be used to index type 'Object'

你想要Key extends keyof Object:

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

泛型中的语法 T = S 指定类型的默认值,但不以任何方式限制类型。