【发布时间】: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