TypeScript里的并集与交集类型

2025-01-09 11:23:46   小编

TypeScript里的并集与交集类型

在TypeScript的类型系统中,并集与交集类型是两个强大且实用的概念,理解它们对于编写高质量、可维护的代码至关重要。

并集类型,使用竖线(|)来表示。它允许一个变量或函数参数可以是多种类型中的任意一种。例如:let value: string | number; 这里,value 变量既可以被赋值为字符串,也可以被赋值为数字。这种灵活性在处理不同类型数据但逻辑上又有一定共性的场景中非常有用。比如,一个函数可能需要接受不同类型的输入:function printValue(value: string | number) { console.log(value); },这个函数可以接受字符串或数字作为参数并进行打印操作。

并集类型在联合不同的接口或类型别名时也很常见。假设我们有两个接口:interface Dog { name: string; bark(): void; }interface Cat { name: string; meow(): void; },现在我们想要一个函数可以处理狗或猫:function handlePet(pet: Dog | Cat) { console.log(pet.name); },这样无论传入的是狗还是猫的对象,函数都能正确处理它们共有的 name 属性。

交集类型则使用 & 符号。它表示一个类型是多种类型的组合,一个变量或对象必须同时满足所有这些类型的要求。例如:interface A { a: string; }interface B { b: number; },那么 let obj: A & B = { a: 'hello', b: 123 };,这里 obj 必须同时具备 AB 接口的属性。

交集类型在扩展现有类型时非常有用。如果我们有一个基础类型,想要在此基础上添加额外的属性或方法,可以通过交集类型来实现。比如有一个通用的 User 接口,现在需要一个特殊的 AdminUser 类型,它不仅有 User 的属性,还有管理员特有的属性:interface User { name: string; age: number; }interface AdminUser extends User & { permissions: string[]; },这样 AdminUser 就同时拥有了 User 的属性和 permissions 数组。

TypeScript的并集与交集类型为开发者提供了强大的类型组合能力,合理运用它们可以让代码更加灵活、健壮,提升开发效率与代码质量。

TAGS: TypeScript 类型系统 并集类型 交集类型

欢迎使用万千站长工具!

Welcome to www.zzTool.com