用于将多个类型合并为一个类型,它包含了所需的所有类型的特性,使用&
定义交叉类型
常用于将多个接口类型合并成一个类型,从而实现等同接口继承的效果,即合并接口类型
ts// 交叉类型
interface A { a: number };
interface B { b: string };
type C = A & B
let a:C = {
a:110,
b:"w"
}
console.log(a)
当两个接口中同一个属性有多个类型,如一个接口中name是number,另一个接口中name是string,使用交叉类型后,name就变为number和string两个原子类型的交叉类型,即never
当一个接口中name是string(number),另一个接口中name是字符串字面量类型(数字字面量类型),使用交叉类型后,name就是两者之中的子类型即字符串字面量类型(数字字面量类型)
tsinterface Admin {
name: { usersName: string };
}
//Employee接口
interface Employee {
name: { id: number };
}
//类型别名 交叉类型
type UnknownEmployee = Employee & Admin;
let test: UnknownEmployee = { name: { id: 1, usersName: "咩啊" } } //正常,不报错
混入多个类型时,若存在相同的属性,且属性类型为非基本数据类型,则是可以成功合并
本文作者:RKLS
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!