首页 > 解决方案 > 来自键值对象的打字稿类型函数

问题描述

我有一个像

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

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

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

标签: typescripttypescript-typingstypescript-generics

解决方案


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

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

推荐阅读