ts Extract的原始实现如下:
type MyExtract<T, U> = T extends U ? T : never;
使用该类型,得出的类型为string
type T1 = Extract<string | number, string>; // string
直接用它的算法,得出的类型却是never,这是为什么?
type T2 = string | number extends string ? string | number : never; // never
ts Extract的原始实现如下:
type MyExtract<T, U> = T extends U ? T : never;
使用该类型,得出的类型为string
type T1 = Extract<string | number, string>; // string
直接用它的算法,得出的类型却是never,这是为什么?
type T2 = string | number extends string ? string | number : never; // never
还是有区别的。