【问题标题】:Typescript typed function from key value object来自键值对象的打字稿类型函数
【发布时间】:2021-05-06 21:50:53
【问题描述】:

我有一个类似的对象

const lookup = {
  key1: object1,
  key2: object2,
  key3: object3
}

我需要创建一个接受 key(key1/key2...) 作为第一个参数的函数,并且 typeof object1 作为第二个。

如果我使用 foo(key1, {}) 我必须只指定所选对象 (object1) 的参数

【问题讨论】:

  • 你的问题有点难理解,能不能换个方式写? i have to specify only params of selected object是什么意思?
  • Object1 和 object2 有不同的键(例如只有名称和标题),如果我调用 foo('object1', {name: ''}) 我必须指定这个对象的键
  • 主要做法是使用泛型:function foo<K extends keyof typeof lookup>(key: K, obj: (typeof lookup)[K]) {}.

标签: typescript typescript-typings typescript-generics


【解决方案1】:

上面的评论者提出了一个使用泛型的解决方案

function foo<K extends keyof typeof lookup>(key: K, obj: (typeof lookup)[K]) {}

【讨论】:

  • 如果它起作用了,你能解释一下它是怎么做的吗?所以它可能会帮助其他面临同样问题的人
猜你喜欢
  • 2022-01-03
  • 1970-01-01
  • 2021-04-02
  • 2022-06-23
  • 1970-01-01
  • 1970-01-01
  • 2021-05-21
  • 2019-03-13
  • 1970-01-01
相关资源
最近更新 更多