我无法理解TypeScript中术语union types和intersection types背后的逻辑.
实际上,如果不同类型的属性是属性集,如果我将它们与&
运算符组合,得到的类型将是这些属性集中的union.按照这个逻辑,我希望这样的类型被称为union types.如果我把它们和|
结合起来,我只能使用它们的共同属性,即集合中的intersection.
Wikipedia似乎支持这种逻辑:
任意给定非空集S的幂集(所有子集的集合)通过两个运算形成一个布尔代数,一个集合代数∨ := ∪ (unions )和∧ := ∩ (十字路口).
然而,根据typescriptlang.org,情况恰恰相反:&
用于生产intersection types,|
用于生产union types.
我肯定有另一种看待它的方式,但我无法理解.