示例1 中交叉类型结果为never
,是为啥呢?
// 示例1
type DataTypeNever = {
d: true;
e: number;
} & {
d: false;
e: number;
}
let data: DataTypeNever = (() => {
throw new Error
})()
示例2 中交叉类型结果为{ d: false, e: never }
,为何和示例1不同呢?
// 示例2
type DataType = {
d: false;
e: number;
} & {
d: false;
e: string;
}
let data: DataType = {
d: false,
e: (() => {
throw new Error
})()
}