来自键值对象的打字稿类型函数
Posted
技术标签:
【中文标题】来自键值对象的打字稿类型函数【英文标题】: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])
.
【参考方案1】:
上面的评论者提出了一个使用泛型的解决方案
function foo<K extends keyof typeof lookup>(key: K, obj: (typeof lookup)[K])
【讨论】:
如果它起作用了,你能解释一下它是怎么做的吗?所以它可能会帮助其他面临同样问题的人以上是关于来自键值对象的打字稿类型函数的主要内容,如果未能解决你的问题,请参考以下文章