如何从typescript中的类型值类型中获取联合类型

时间:2018-03-19 20:42:10

标签: typescript

有一种类型

type A = { a: type1; b: type2; c: type2 };

如何创建一个类型,从类型A的可能值类型创建联合类型?

type Magic<A>; // type1 | type2

1 个答案:

答案 0 :(得分:2)

对于类型中所有类型值的并集:

type Magic<T> = T[keyof T];
// Magic<A> has type: type1 | type2

或者,如果您只想从特定键获取类型:

type Magic<T, K extends keyof T> = T[K];
// Magic<A, "a"|"b"> has type: type1 | type2

查看the docs的映射类型部分,了解这些类型的工作原理。