Skip to content
On this page

组合类型

在 TypeScript 中,您可以使用类型联合(type union)和类型交叉(type intersection)来组合类型。

联合类型

TypeScript 中的联合类型允许您为单个变量或参数指定多种可能的类型。联合类型以竖条分隔的类型列表形式书写。

例如,一个函数的参数是字符串或数字:

ts
function combine(input1: string | number, input2: string | number) {
  return input1 + input2;
}

交叉类型

交叉类型通过组合多个现有类型来创建一个新类型。新类型具有现有类型的所有特征。

要组合类型,可以使用 & 操作符,如下所示:

ts
type typeAB = typeA & typeB;

TypeAB 将具有 typeAtypeB 的所有属性。

请注意,联合类型使用 | 操作符定义了一个变量,该变量可以保存类型 A 或 类型 B 的值

类型别名

TypeScript 中的类型别名允许您为类型创建一个新名称。

下面是一个例子:

ts
type Name = string;
type Age = number;
type User = { name: Name; age: Age };

const user: User = { name: 'John', age: 30 };

在上面的示例中,NameAge 分别是字符串和数字的类型别名。而 User 是一个对象的类型别名,该对象的属性 nameName 类型,ageAge 类型。

keyof 操作符

TypeScript 中的 keyof 操作符用于从对象类型中获取键的联合。下面是一个如何使用它的示例:

ts
interface User {
  name: string;
  age: number;
  location: string;
}

type UserKeys = keyof User; // "name" | "age" | "location"
const key: UserKeys = 'name';

在这个示例中,UserKeys 是一个类型,代表了 User 接口中的键的联合,该接口包括 "name" | "age" | "location"。并且声明了一个名为 key 的常量,其类型是 UserKeys,其值为 "name"