返回

掌握 TS 部分工具泛型和操作符,提高你的开发效率

前端

前言:

TypeScript 是一种强大的语言,它为 JavaScript 带来了静态类型系统,使开发人员能够在编译时捕获类型错误。TypeScript 中的泛型和操作符可以帮助我们编写更健壮、更易维护的代码。

工具泛型:

TypeScript 中的工具泛型是一些内置的泛型函数或类型,可以帮助我们处理类型。常见的工具泛型包括:

1. Partial:
Partial创建一个新的类型,其中Type的每个属性都是可选的。这对于创建对象或函数的参数类型很有用,我们希望这些参数是可选的。

2. Readonly:
Readonly创建一个新的类型,其中Type的每个属性都是只读的。这对于创建需要确保不会被意外更改的对象类型很有用。

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 中的工具泛型和操作符可以帮助我们编写更健壮、更易维护的代码。理解和应用这些概念可以大大提高我们的开发效率。