typescript 有可能将对象类型Map到联合中吗

of1yzvn4  于 2023-05-23  发布在  TypeScript
关注(0)|答案(1)|浏览(150)

如果我有一个像下面这样的对象类型

type Foo = {
  a: ValueA
  b: ValueB
}

有没有可能创建一个泛型Map类型,它是它的键/值对的联合,像这样?

type EntriesOf<Foo> = { key: 'a'; value: ValueA } | { key: 'b'; value: ValueB }

我能做的就是

type EntriesOf<Type> = { key: keyof Type; value: Type[keyof Type] }

但结果是

{ key: 'a' | 'b'; value: ValueA | ValueB }
9jyewag0

9jyewag01#

找到了答案

type ValuesOf<T> = T[keyof T]
type EntriesOf<T> = ValuesOf<{ [K in keyof T]: { key: K; value: T[K] } }>

相关问题