TypeScript:此变量声明语法是什么意思?

时间:2020-09-22 16:22:16

标签: javascript angular typescript

任何人都知道这是什么意思:

myCollection: Collection|any = null;

我正在设法弄清楚,但我不确定。.

这是否意味着myCollection被定义为Collection的类型(这是一个接口),并且其值默认为null? 但如果是这样,这是什么:

|any

是什么意思?

3 个答案:

答案 0 :(得分:2)

|union。类型A | B的意思是“ AB或两者兼有。”

anythe any "type",通常是shouldn't be using,因为它可以通过同时赋予任何其他类型以及任何其他类型。这也意味着any吞噬了在联合或相交处出现的任何类型。

类型Collection | any因此意味着“任何类型的Collectionany”。编译器立即将其减少到any,因为“ A或任何东西”就是“任何东西”:

myCollection: Collection | any = null;
// (property) Foo.myCollection: any

因此Collection | any最多对文档有用。就编译器而言,Collection |消失了。

该属性被初始化为null


我不确定这是别人的密码还是你的。如果是您的,如果目的是该属性可以是Collection | nullCollection,请考虑更改为null。如果是别人的,嗯,问他们我怎么了?

Playground link to code

答案 1 :(得分:1)

这意味着myCollection可以是Collection类型的,也可以是any类型的,并且被初始化为null

答案 2 :(得分:1)

Collection|any这种类型中,|表示Union Type

意思是,变量mycollection可以保存类型为Collection的值 OR 类型为any

由于mycollection的类型可以为anynull是有效值,而打字稿允许您将空值分配给mycollection。