# 交叉类型
本节聚焦对类型求交集的运算,交叉类型
# 基础使用
交叉类型是对多个类型求取交集运算,这会使类型的值同时具有多个类型 的特征。
type BallSize = {
name: string;
size: string;
};
type BallColor = {
name: string;
color: string;
};
// 定义一个同时包含名字,尺寸,类型属性的对象类型
type BallSizeAndColor = BallSize & BallColor;
// 变量必须同时包含 size 和 color 属性
let ball: BallSizeAndColor;
// 合法
ball = {
name: 'tennis',
size: 'small',
color: 'white'
};
// 报错, 缺少 color 属性
ball = {
name: 'basketball',
size: 'big'
};
// 报错, 缺少 size 属性
ball = {
name: 'pingpong',
color: 'yellow'
};
TIP
注意交叉类型是对类型求取交集而非值,所以变量的值是同时具备多个类型特征。不要错误的认为是对值求取交集。
# 总结
本节知识点如下:
- 采用
&求取多个类型的交集,此时值必须同时满足多个类型的特征。