前面我们学的数字类型、字符串类型、布尔类型、数组类型等等可能都是我们比较熟悉的数据类型,在其他计算机语言中也能经常见到。而本节我们要学习的是 TypeScript
中的高级类型,例如交叉类型、联合类型、类型别名、字面量类型等。
交叉类型
交叉类型是将多个类型合并为一个类型。可以通过 &
来实现合并,生成的新类型包含了所需的所有类型的特性。
举一个例子,假设 A
、B
、C
是三种不同的数据类型, 我们将三种类型合并为一个新的交叉类型 A & B & C
,那么使用这个交叉类型声明的对象可以同时包含 A、B、C
这个三种类型的成员。
一般交叉类型大多用于混入(mixins),或其他不适合典型面向对象模型的地方使用。在 JavaScript 里发生这种情况的场合很多。
示例:
我们来看一个简单的例子,下面 User
和 Student
是我们定义好的两个接口:
interface User {
id: number,
username: string,
age: number
}
interface Student{
id: number,
score: number[],
}
let cross: User & Student; // 交叉类型
// 变量cross拥有两个接口中的所有属性
cross.id;
cross.username;
cross.age;
cross.