技术文摘
TypeScript里的并集与交集类型
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 必须同时具备 A 和 B 接口的属性。
交集类型在扩展现有类型时非常有用。如果我们有一个基础类型,想要在此基础上添加额外的属性或方法,可以通过交集类型来实现。比如有一个通用的 User 接口,现在需要一个特殊的 AdminUser 类型,它不仅有 User 的属性,还有管理员特有的属性:interface User { name: string; age: number; },interface AdminUser extends User & { permissions: string[]; },这样 AdminUser 就同时拥有了 User 的属性和 permissions 数组。
TypeScript的并集与交集类型为开发者提供了强大的类型组合能力,合理运用它们可以让代码更加灵活、健壮,提升开发效率与代码质量。
TAGS: TypeScript 类型系统 并集类型 交集类型
- Python 处理图片的 20 个常用脚本,你知晓多少?
- IM 场景中 Wasm 的初探:增强 Web 应用性能
- 打造出色 Shell 脚本的六种方法
- 深入探究 TypeScript 中的泛型类型
- 五种鲜为人知的改进分析的数据转换技术
- Spring Boot 3.x 中 SpringDoc 2 / Swagger3 的详细使用
- 阿里面试:HashMap 扩容的实现步骤有哪些?分三步!
- 我钟爱的五个命令行工具,你偏爱哪一个?
- Stream 与 Map:toMap() 运用需留意
- Jackson 在 Spring Boot 中的高级应用技巧:Long 精度丢失、@JsonValue 与数据脱敏
- For 和 While 流程控制语句的实现方式探究
- PyTorch 构建神经网络的 12 个实践范例
- Flink 任务画布模式下基于图遍历的零代码开发实现策略
- 多人多团队实施微服务及版本管理的方法
- Sentinel 限流的实现方式