我不理解TypeScript中术语联合类型和交叉点类型背后的逻辑。
实用上,如果不同类型的属性是属性集,那么如果我将它们与&
运算符结合使用,则结果类型将是这些集合中的union。按照这种逻辑,我希望这样的类型称为union types。如果将它们与|
结合使用,则只能使用它们的公共属性,即集合的intersection。
Wikipedia似乎支持该逻辑:
任何给定非空集S的幂集(所有子集的集合)形成布尔代数,是集合的代数,具有两个运算∨:=∪(联合)和∧:=∩(交集)。
但是,根据typescriptlang.org,恰恰相反:&
用于产生交集类型,|
用于工会类型。
我确定还有另一种查看方式,但是我无法弄清楚。