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

    【讨论】:

      猜你喜欢
      • 2021-02-22
      • 1970-01-01
      • 2022-11-11
      • 2021-08-12
      • 2022-11-15
      • 2017-05-23
      • 2020-02-08
      • 2017-08-04
      • 2017-06-11
      相关资源
      最近更新 更多