Exclude 是 TypeScript 中内置的工具类型,它用于从一个联合类型中排除掉你不希望包含的类型,生成一个新的类型。这个工具类型在日常开发中非常有用,它能够帮助我们编写类型安全的代码和更好地实现代码复用。
本文我将介绍 Exclude 工具类型的 8 个使用技巧,掌握这些技巧之后,在工作中你就能更好地利用 Exclude 工具类型来满足不同的使用场景。
1.排除指定的基本数据类型
2.排除 string 或 number 类型的子类型
3.排除两个联合类型的共有成员
4.排除含有特定属性的子类型
Animal 联合类型,包含了多种动物的描述对象,我们想从中排除含有 "legs" 属性的子类型。
5.排除同个属性不同类型的子类型
除了可以使用 Exclude<Animal, { legs: number }> 来创建 AnimalsWithFins 类型,该类型还可以通过 Exclude<Animal, { type: 'dog' | 'cat' }> 这种方式来创建。
6.排除枚举类型的某些成员
利用 Exclude 工具类型可以排除枚举中的某些成员,从而得到一个新的类型。
7.排除指定前缀的字符串字面量类型
利用 Exclude 工具类型和模板字面量类型,我们可以实现从字符串字面量联合类型中,排除指定前缀或后缀的字符串字面量。