Skip to main content

TS | 联合声明和交叉类型

基本联合类型

声明的变量可以为多种类型

let a: string | number;
a = "yigedabing";
a = 1;

对象类型联合

对象联合类型只能访问联合中所有共同成员

interface a {
name: string;
age: number;
}

interface b {
name: string;
age: number;
get(): void;
}

declare function ab(): a | b;
let ab = ab();
ab.name = "yzj";
ab.age = "25";
ab.get(); // err get 不是共同成员 会报错

交叉类型 &

交叉类型就是 多个类型的合集

   interface paramsOne {
type: string
}
interface paramsTwo {
name: string
}

init(params: paramsOne & paramsTwo) {

}

// params 将为所有的成员
init({type: '1', name: 'yu'})