什么是 TypeScript 的类型别名?怎么定义类型别名?

2024-08-26 10:17:11 342
TypeScript 的类型别名(`type alias`)是一种为某种类型创建一个新的名称的方式。类型别名可以用来命名任何类型,包括原始类型、对象类型、联合类型、元组类型等。类型别名提供了更简洁、更具可读性的方式来定义和使用复杂的类型。

定义类型别名

使用 type 关键字可以定义一个类型别名,格式如下:

type 新类型名 = 已有类型;

示例 1: 基本类型的类型别名

你可以为基本类型创建别名,这样在代码中可以使用更具语义的名称。

type ID = number;
type Username = string;

let userId: ID = 101;
let userName: Username = "Alice";

示例 2: 对象类型的类型别名

可以使用类型别名定义复杂的对象类型,类似于接口。

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

let person: Person = {
    name: "Bob",
    age: 30
};

示例 3: 联合类型的类型别名

类型别名可以用于联合类型,使代码更易读。

type Status = "success" | "error" | "loading";

let currentStatus: Status = "loading";  // 只能是"success", "error", 或 "loading"

示例 4: 函数类型的类型别名

你可以为函数定义一个类型别名。

type GreetFunction = (name: string) => string;

const greet: GreetFunction = (name) => {
    return `Hello, ${name}!`;
};

console.log(greet("Alice"));  // 输出: Hello, Alice!

示例 5: 交叉类型的类型别名

类型别名还可以用于创建交叉类型,将多个类型组合在一起。

type HasName = {
    name: string;
};

type HasAge = {
    age: number;
};

type Person = HasName & HasAge;

let person: Person = {
    name: "Charlie",
    age: 40
};

使用场景

  • 简化复杂类型: 当一个类型非常复杂时,可以用类型别名来简化代码。
  • 增加可读性: 使用语义化的名称可以让代码更易于理解。
  • 灵活性: 类型别名可以用于组合和扩展其他类型。

总结

类型别名为复杂类型提供了简洁且具备可读性的命名方式,适用于多种类型场景。你可以用 type 关键字定义类型别名,并在代码中使用它来简化类型管理。