簡體   English   中英

TypeScript:這個變量聲明語法是什么意思?

[英]TypeScript : what does this variable declaration syntax mean?

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

myCollection: Collection|any = null;

?

我想弄清楚,但我不確定..

這是否意味着 myCollection 被定義為 Collection 的類型, (它是一個接口) ,並且默認情況下它的值為 null? 但如果是這樣,這是什么:

|any

方法 ?

| 是一個工會 A | BA | B A | B意思是“ AB或兩者”。

anyany “類型” ,您一般不應該使用,因為它有效地被分配兩個其他任何類型任何其他類型的關閉類型檢查。 這也意味着any吞噬了它在聯合或交集中出現的任何類型。

類型Collection | any 因此, Collection | any意思是“ Collectionany類型”。 這會立即被編譯器簡化為any ,因為“A 或任何東西”只是“任何東西”:

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

所以Collection | any Collection | any充其量對文檔有用; 就編譯器而言, Collection | 消失了。

並且該屬性被初始化為null


我不確定這是別人的代碼還是你的代碼。 如果它是您的,請考慮更改為Collection | null Collection | null如果意圖是該屬性可以是Collectionnull 如果是別人的,呃,問問他們我猜這是怎么回事?

Playground 鏈接到代碼

這意味着 myCollection 可以是 Collection 類型或 any 類型,並且它被初始化為 null

Collection|any這種類型, | 表示聯合類型

這意味着,變量mycollection可以保存類型Collectionany類型的值。

因為mycollection可以是any類型,所以null是有效值,並且 typescript 允許您將 null 分配給 mycollection。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM