联合类型(Union Types)
- 定义:联合类型表示一个值可以是几种类型之一。
- 构建方式:使用
|
分隔不同的类型。
- 使用场景:当一个变量或函数参数可能具有多种类型,但同一时间只能是其中一种类型时使用。
- 示例:
// 定义联合类型
let value: string | number;
value = 'hello';
value = 42;
// 在函数参数中使用联合类型
function printValue(val: string | number) {
console.log(val);
}
printValue('world');
printValue(123);
交叉类型(Intersection Types)
- 定义:交叉类型是将多个类型合并为一个类型,这个类型包含了所有类型的特性。
- 构建方式:使用
&
连接不同的类型。
- 使用场景:当需要一个对象同时满足多个类型的要求时使用。
- 示例:
// 定义两个接口
interface A {
name: string;
}
interface B {
age: number;
}
// 定义交叉类型
type AB = A & B;
// 创建交叉类型的实例
let person: AB = {
name: 'John',
age: 30
};