Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 什么';这是'&';和'|';打字_Typescript - Fatal编程技术网

Typescript 什么';这是'&';和'|';打字

Typescript 什么';这是'&';和'|';打字,typescript,Typescript,从typescript的文档中,我知道“&”表示“交集类型”,而“|”表示“联合类型”。但我想知道下面的例子有什么不同: type Type1 = number | boolean; type Type2 = number & boolean; 从正式的Typescript文档: 联合类型描述的值可以是多种类型之一。我们 使用竖条(|)分隔每种类型,以便为|字符串编号| 布尔值是值的类型,可以是数字、字符串或字符串 布尔型 交叉点类型将多个类型组合为一个。这允许你 将现有类型添

从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)的类型

有关更多详细信息,请参阅,这里的说明相当好