返回

TypeScript 中最常用的高级类型用法,学完即成 TypeScript 大佬

前端

TypeScript 是一种强大的语言,具有丰富的类型系统。这使得它非常适合构建复杂的应用程序,并确保代码的健壮性。在 TypeScript 中,可以使用高级类型来创建自定义类型,这可以使代码更具可读性、可维护性和可重用性。

交叉类型

交叉类型用于合并两个或多个类型,从而创建一个包含所有参与合并类型特性的新类型。交叉类型的语法如下:

type NewType = Type1 & Type2 & ...;

例如,我们可以定义一个表示具有姓名和年龄的人的类型:

type Person = {
  name: string;
  age: number;
};

然后,我们可以定义一个表示具有姓名、年龄和职业的人的类型:

type Employee = Person & {
  occupation: string;
};

现在,我们可以使用 Employee 类型来表示具有姓名、年龄和职业的员工。

联合类型

联合类型用于创建一种类型,该类型可以是两种或多种其他类型之一。联合类型的语法如下:

type NewType = Type1 | Type2 | ...;

例如,我们可以定义一个表示可以是字符串或数字的类型:

type StringOrNumber = string | number;

现在,我们可以使用 StringOrNumber 类型来表示可以是字符串或数字的值。

类型别名

类型别名用于给现有类型起一个新的名称。类型别名的语法如下:

type NewTypeName = ExistingType;

例如,我们可以定义一个表示 string 类型的别名:

type StringAlias = string;

现在,我们可以使用 StringAlias 类型来表示字符串。

元组

元组是一种有序的类型,其中每个元素都具有特定的类型。元组的语法如下:

type NewTupleType = [Type1, Type2, ...];

例如,我们可以定义一个表示具有三个元素的元组,其中第一个元素是字符串,第二个元素是数字,第三个元素是布尔值:

type MyTuple = [string, number, boolean];

现在,我们可以使用 MyTuple 类型来表示具有三个元素的元组。

枚举

枚举是一种表示一组命名常量的类型。枚举的语法如下:

enum NewEnumType {
  Member1,
  Member2,
  ...
}

例如,我们可以定义一个表示颜色的枚举:

enum Color {
  Red,
  Green,
  Blue
}

现在,我们可以使用 Color 枚举来表示颜色。

接口

接口是一种对象的形状的类型。接口的语法如下:

interface NewInterface {
  property1: Type1;
  property2: Type2;
  ...
}

例如,我们可以定义一个表示具有姓名和年龄的人的接口:

interface Person {
  name: string;
  age: number;
}

现在,我们可以使用 Person 接口来具有姓名和年龄的人。

类是一种创建对象的蓝图。类的语法如下:

class NewClass {
  constructor(参数列表) {
    // 构造函数体
  }

  // 方法
  method1() {
    // 方法体
  }

  // 属性
  property1: Type1;
}

例如,我们可以定义一个表示人的类:

class Person {
  constructor(public name: string, public age: number) { }

  greet() {
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
  }
}

现在,我们可以使用 Person 类来创建具有姓名和年龄的人的对象。

总结

高级类型是 TypeScript 中非常强大的功能,可以用来创建自定义类型,使代码更具可读性、可维护性和可重用性。在本文中,我们介绍了 TypeScript 中一些最常用的高级类型,包括交叉类型、联合类型、类型别名、元组、枚举、接口和类。我们还提供了一些示例代码来说明如何使用这些类型。