从打字稿的文档中,我知道“&”的意思是“路口类型”和“ |”代表“联盟类型”。但是我想知道以下示例有什么区别:
type Type1 = number | boolean;
type Type2 = number & boolean;
答案 0 :(得分:1)
摘自官方Typescript文档:
联合类型描述的值可以是几种类型之一。我们 使用竖线(|)分隔每种类型,因此数字|字符串 布尔值是值的类型,可以是数字,字符串或 布尔值。
交集类型将多种类型组合为一种。这可以让你 将现有类型加在一起以得到具有所有 您需要的功能。例如,“ Person&Serializable&Loggable”是一个 人员和可序列化和可记录。这意味着这个的对象 类型将具有所有三种类型的所有成员。
用数字或布尔值之类的原始类型来解释它并不重要,但可以想象有两个这样的类:
export class Toto {
FirstName: string;
LastName: string;
}
export class Tata {
PhoneNumber: number;
}
如果您编写type Type1 = Toto | Tata;
,则您的Type1将是Toto实例或Tata实例,但不是两者。
但是,如果您编写type Type2 = Toto & Tata;
,则您的Type2将是具有所有Toto和Tata属性(名字,姓氏和电话号码)的类型。
有关更多详细信息,请参见doc,在那里有很好的解释。