【发布时间】:2019-04-27 15:57:06
【问题描述】:
我可以通过type UnionKeys<T> = { [Key in keyof T]: Key }[keyof T]得到一个联合的所有键
type MyUnion = {x: 'a', y: 'b'} | {x: 'aa', z: 'c'}
type T1 = UnionKeys<MyUnion> // 'x' | 'y' | 'z'
如何获得联合的合并类型?
type MergedUnion<T> = ?????
type T2 = MergedUnion<MyUnion> // `{x: 'a' | 'aa', y: 'b', z: 'c'}`
【问题讨论】:
-
即使
UnionKeys也无法按预期工作。UnionKeys<MyUnion>就是'x'(和你使用普通的keyof MyUnion一样) -
你从哪里得到
UnionKeys的定义?它似乎不起作用 -
type UnionKeys<T> = { [Key in keyof T]: Key }[keyof T]是我的自制软件。它会在 3.4.3 和 3.5-dev 上产生'x' | 'y' | 'z',但我更喜欢你的版本。
标签: typescript