1 . 交叉类型 :
类似于接口继承 ,用于组合多个类型为一个类型(常用于对象类型)
interface Person { name : string }
interface Contact { phone : string }
type Mix = Person & Contact
let obj : Mix = {
name : ' 翔哥 '
phone : ' 6208 '
}
2 . 交叉类型和接口继承的对比
2 . 1 相同点 :
都可以实现对象类型的组合
2 . 2 不同点 :
组合时 ,遇到同名属性之间类型有冲突时 ,处理方式不同 。
- 接口继承会直接报错
- 而交叉类型不会 ,它会把属性类型改成两个的联合类型
interface A {
fn : (value : string) => string
}
interface B {
fn : (value : number) => string
}
type C = A & B
// 则 C 相当于
{ fn : (value : string | number ) => string }