我无法区分 TS 中联合和交集类型之间的差异,尽管差异应该非常清楚。举个例子:
type CustomType1 = {
customProp1: number;
};
type CustomType2 = {
customProp2: number;
};
type UnionType = CustomType1 | CustomType2;
const e1: UnionType = {
customProp1: 4,
customProp2: 5,
};
请注意我是如何创建一个联合类型的,它理论上应该创建一个只能具有一种或另一种类型的对象。情况并非如此,因为即使我定义的对象具有这两种类型的两个属性,编译器和我的 ide 都不会显示任何错误,这应该只有在将两种类型与交集 & 符号合并后才可能发生。是这样吗?