Exclude
Exclude
是 TypeScript 中内置的一个类型修饰器,用于从一个类型中排除另一个类型。它可以通过使用 Exclude<T, U>
的形式来调用,其中 T
是要从中排除的类型,而 U
是要排除的类型。结果是一个新的类型,它包含了所有的 T
类型中不属于 U
类型的值。例如:
type A = Exclude<"a" | "b" | "c", "a">;
// type A = "b" | "c"
实现
type MyExclude<T, U> = T extends U ? never : T;
这里,我们使用了 TypeScript 的条件类型,使得如果 T 是 U 的子类型,那么 MyExclude<T, U>
类型的值就是 never
,否则是 T。
这个 MyExclude
类型的行为与内置的 Exclude
类型是一致的。