Skip to main content

Exclude [built-in]

实现内置的Exclude <T, U> 类型,但不能直接使用它本身。

// 从联合类型T中排除U的类型成员,来构造一个新的类型。

type Result = MyExclude<'a' | 'b' | 'c', 'a'> // 'b' | 'c'

/**
* 思路:
* 利用 extends 能做条件判断的特性做判断 如果包含就定义为不包含类型 否则就返回对应的泛型
*/

type MyExclude<T, U> = T extends U ? never : T;