Typescript 什么';这是'&';和'|';打字
从typescript的文档中,我知道“&”表示“交集类型”,而“|”表示“联合类型”。但我想知道下面的例子有什么不同:Typescript 什么';这是'&';和'|';打字,typescript,Typescript,从typescript的文档中,我知道“&”表示“交集类型”,而“|”表示“联合类型”。但我想知道下面的例子有什么不同: type Type1 = number | boolean; type Type2 = number & boolean; 从正式的Typescript文档: 联合类型描述的值可以是多种类型之一。我们 使用竖条(|)分隔每种类型,以便为|字符串编号| 布尔值是值的类型,可以是数字、字符串或字符串 布尔型 交叉点类型将多个类型组合为一个。这允许你 将现有类型添
type Type1 = number | boolean;
type Type2 = number & boolean;
从正式的Typescript文档: 联合类型描述的值可以是多种类型之一。我们 使用竖条(|)分隔每种类型,以便为|字符串编号| 布尔值是值的类型,可以是数字、字符串或字符串 布尔型 交叉点类型将多个类型组合为一个。这允许你 将现有类型添加到一起以获得具有所有 您需要的功能。例如,Person&Serializable&Loggable是 Person和Serializable以及Loggable。这意味着一个目标 类型将具有所有三种类型的所有成员 用诸如number或boolean之类的基元类型来解释它并不是那么重要,但想象一下有两个这样的类:
export class Toto {
FirstName: string;
LastName: string;
}
export class Tata {
PhoneNumber: number;
}
如果你写Type1=Toto | Tata代码>那么您的Type1将是Toto实例或Tata实例,但不是同时是两者。
但是如果你写Type2=Toto&Tata代码>那么您的Type2将是一个具有所有Toto和Tata属性(FirstName、LastName和PhoneNumber)的类型
有关更多详细信息,请参见,这里有很好的解释。来自正式的Typescript文档:
联合类型描述的值可以是多种类型之一。我们
使用竖条(|)分隔每种类型,以便为|字符串编号|
布尔值是值的类型,可以是数字、字符串或字符串
布尔型
交叉点类型将多个类型组合为一个。这允许你
将现有类型添加到一起以获得具有所有
您需要的功能。例如,Person&Serializable&Loggable是
Person和Serializable以及Loggable。这意味着一个目标
类型将具有所有三种类型的所有成员
用诸如number或boolean之类的基元类型来解释它并不是那么重要,但想象一下有两个这样的类:
export class Toto {
FirstName: string;
LastName: string;
}
export class Tata {
PhoneNumber: number;
}
如果你写Type1=Toto | Tata代码>那么您的Type1将是Toto实例或Tata实例,但不是同时是两者。
但是如果你写Type2=Toto&Tata代码>那么您的Type2将是一个具有所有Toto和Tata属性(FirstName、LastName和PhoneNumber)的类型
有关更多详细信息,请参阅,这里的说明相当好