- 交叉类型指的是,多个类型组成的一个新类型,使用符号&表示
- 交叉类型A&B表示,任何一个类型必须同时属于A和B,才属于交叉类型A&B,即同时满足A和B的特征
- 如果变量x同时是数值和字符串,这当然是不可能的,所以ts会认为x的实际类型是never
- 交叉类型的主要用途是表示对象的合成
let obj: {foo:string}& {bar:string} obj={ foo:'hello' bar:'world' } - 交叉类型常常用来为对象类型添加新属性
type A={foo:number} type B=A&{bar:number}