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'})