实现内置的?Exclude<T, U>
?类型,但不能直接使用它本身。
从联合类型?
T
?中排除?U
?中的类型,来构造一个新的类型。
例如:
type Result = MyExclude<'a' | 'b' | 'c', 'a'> // 'b' | 'c'
解法:
type MyExclude<T, U> = T extends U ? never : T
TS中的extends解析:TypeScript extends 精读与实践 - 知乎 (zhihu.com)