基本使用方法
功能类似于接口继承,用于组合多个类型为一个类型
interface Person {name:string}interface Contact {phone:string}type personDetail = Person & Contactlet obj: PersonDetail = {name:'jack'phone:'123'}
使用交叉类型后,新的PersonDetail具有了Person和Contact的所有属性
相当于
type PersonDetail = {name:string;phone:string}
交叉类型与接口继承的联系与区别
相同点:都可以实现对象类型的组合
不同点:两种方式实现类型聚合时,对于同名属性之间,处理冲突的方式不同
//对于接口继承interface A {fn: (value:number)=>string}//interface B extends A{ /*报错:类型不兼容*/// fn: (value:string)=>string//}//对于交叉类型interface A {fn: (value:number)=>string}interface B extends A{fn: (value:string)=>string}type C = A & B//相当于吧fn变为fn:(value: string|number) => string
