如果结果不如你所愿,就在尘埃落定前奋力一搏。——《夏目友人帐》
文档:
https://www.typescriptlang.org/docs/handbook/2/objects.html#intersection-types
让我们用中文来解释这两个例子的区别,并通过几个例子帮助你理解。
交集类型
1 | |
- 结果
Foo类型:{ x: number; y: number } - 解释:
Foo是Bar和Baz的交集类型。它必须同时拥有x和y两个属性。
示例:
1 | |
联合类型
1 | |
- 结果
Bar类型:{ x: number } | { y: number } - 解释:
Bar是一个联合类型,这意味着它可以是Foo或Baz。它可以只包含x,或只包含y,但不能同时包含两个属性。
示例:
1 | |
总的来说
- 交集类型(
&):要求所有类型的属性都存在。 - 联合类型(
|):允许类型是其中之一。