如果key不一样,合并(增加),一样的话取交集(都生效)
交集
- 取交集
type T1 = 'a' | 'c';
type T2 = 'a' | 'b';
type T0 = T1 & T2;
const TT: T0 = 'a';
// const TT: T0 = 'b'; // Type '"b"' is not assignable to type '"a"'
- 交集为空,无解
type T1 = { a: string };
type T2 = { a: number };
type T0 = T1 & T2;
const TT: T0 = {
// a: 'string',//err
// a: 1,//err
};
继承
type T1 = { a: 'a' | 'b'; b: string };
type T2 = { a: 'b' | 'c' };
type T0 = T1 & T2;
const TT: T0 = {
a: 'b',
b: 's',
};
interface a {
aa: string | number;
}
interface b {
aa: number;
}
export type ccccc = a & b;
type T1 = { a: 'a' };
type T2 = { a: any };
type T0 = T1 & T2;
const TT: T0 = {
a: 'a',//error
};