掌握 TS 部分工具泛型和操作符,提高你的开发效率
2023-09-02 07:25:58
前言:
TypeScript 是一种强大的语言,它为 JavaScript 带来了静态类型系统,使开发人员能够在编译时捕获类型错误。TypeScript 中的泛型和操作符可以帮助我们编写更健壮、更易维护的代码。
工具泛型:
TypeScript 中的工具泛型是一些内置的泛型函数或类型,可以帮助我们处理类型。常见的工具泛型包括:
1. Partial:
Partial
2. Readonly:
Readonly
3. Record:
Record<Key, Value>创建一个新的类型,其中Key是字符串或数字字面量,Value是任何类型。这对于创建具有已知键和值的对象类型很有用。
4. Pick:
Pick<Type, Keys>创建一个新的类型,其中Type的Keys属性是可选的。这对于从对象类型中选择所需属性很有用。
操作符:
TypeScript 中的操作符可以用来组合类型。常用的操作符包括:
1. &:
&操作符用于类型交叉。它创建一个新的类型,其中包含两个类型的所有属性。例如:
type Person = {
name: string;
};
type Employee = {
salary: number;
};
type Manager = Person & Employee;
Manager类型包含了Person和Employee的所有属性。
2. |:
|操作符用于类型联合。它创建一个新的类型,其中包含两个类型之一。例如:
type PersonOrEmployee = Person | Employee;
PersonOrEmployee类型可以是Person类型或Employee类型。
3. extends:
extends操作符用于类型扩展。它创建一个新的类型,其中包含另一个类型的属性和方法。例如:
class Person {
name: string;
}
class Employee extends Person {
salary: number;
}
Employee类扩展了Person类,因此它包含了Person类的所有属性和方法,还包含了salary属性。
4. keyof:
keyof操作符用于获取某个类型的属性名称。例如:
type Person = {
name: string;
age: number;
};
type PersonKeys = keyof Person;
PersonKeys类型为“name”和“age”。
5. infer:
infer 类型推断 用于从泛型类型中推断类型变量的实际类型。它通常与 extends 一起使用。例如:
type UnwrapArray<T> = T extends Array<infer U> ? U : T;
type UnwrappedArray = UnwrapArray<number[]>; // UnwrappedArray 为 number
结语:
TypeScript 中的工具泛型和操作符可以帮助我们编写更健壮、更易维护的代码。理解和应用这些概念可以大大提高我们的开发效率。