当使用 TypeScript 时,联合类型、交叉类型和映射类型是常见的高级类型概念,它们提供了强大的工具来处理各种复杂的类型情况。
### 联合类型(Union Types):
联合类型允许一个值属于多个类型之一。使用 `|` 符号来表示联合类型。例如:
```typescript
let value: string | number;
value = "hello"; // 可以是字符串
value = 10; // 也可以是数字
```
在这个例子中,`value` 可以是 `string` 类型或 `number` 类型。
### 交叉类型(Intersection Types):
交叉类型允许将多个类型合并为一个类型。使用 `&` 符号来表示交叉类型。例如:
```typescript
interface A {
foo: number;
}
interface B {
bar: string;
}
let obj: A & B;
obj = { foo: 123, bar: "hello" }; // 必须同时包含 A 和 B 中的属性
```
在这个例子中,`obj` 必须同时包含 `A` 和 `B` 接口中定义的属性。
### 映射类型(Mapped Types):
映射类型允许根据现有类型创建新类型。它们以现有类型中的属性为基础,并使用映射函数转换它们。例如,`Partial<T>` 类型可以将所有属性从类型 `T` 中变为可选的:
```typescript
interface Person {
name: string;
age: number;
}
type PartialPerson = Partial<Person>;
// 等同于
// interface PartialPerson {
// name?: string;
// age?: number;
// }
```
在这个例子中,`Partial<T>` 接受一个类型 `T`,并将其所有属性变为可选的。
这些高级类型为 TypeScript 提供了更大的灵活性和表达能力,使得开发者能够更好地处理各种复杂的类型情况。
标签:TypeScript,string,映射,number,value,类型 From: https://www.cnblogs.com/ygyy/p/18191943