在 TypeScript 中将交叉类型转换为联合类型
我想在 TypeScript 中获取其中一个重载函数。
我不知道如何做到这一点,但我知道如何遍历联合类型以获取其中的类型,而重载函数被表示为函数的交叉类型,所以我想将交叉类型转换为联合类型。
在 TypeScript 中将交叉类型转换为联合类型,如下所示:
type InterscetionToUnion<T> = T; // impl here
// test case
type intersection = { a: 1 } & { b: 2 };
type test = ExceptTrue<Equals<{ a: 1 } | { b: 2 }, InterscetionToUnion<intersection>>>
type Equals<O1, O2> = (<T>(arg: T extends O1 ? T : T) => void) extends (<T>(arg: T extends O2 ? T : T) => void) ? true : false
type ExceptTrue<T extends true> = T;
TS 允许这样做吗?我在 type-challenges 中没找到类似的问题。