TypeScript交叉类型&联合类型
在TypeScript中,交叉类型(Intersection Types)和联合类型(Union Types)是类型系统的两个关键特性。
交叉类型用 &
操作符表示,它将多个类型合并成一个新类型,新类型包含了所有参与合并的类型的特性。例如,你有两个类型 Person
和 Employee
,你可以创建一个新类型 Person & Employee
,它同时拥有 Person
和 Employee
的属性和方法。
type Person = {
name: string;
age: number;
};
type Employee = {
salary: number;
jobTitle: string;
};
type PersonEmployee = Person & Employee;
let personEmployee: PersonEmployee = {
name: 'Alice',
age: 30,
salary: 50000,
jobTitle: 'Engineer'
};
联合类型用 |
操作符表示,它表示一个类型可以是几种类型之一。例如,一个函数可以接受一个 string
或者 number
作为参数。
function handleStringOrNumber(arg: string | number) {
// ...
}
handleStringOrNumber('hello'); // 正确
handleStringOrNumber(123); // 正确
// handleStringOrNumber({}); // 错误,因为它不是 string 或 number 类型
在实际应用中,交叉类型用于扩展现有类型,创建更复杂的类型结构;联合类型用于指定函数参数或变量可以接受多种类型。
评论已关闭