簡體   English   中英

為什么要在類中聲明變量,甚至在構造函數中將該變量賦值給它

[英]Why to declare variable in the class, even assigning that variable to this in the constructor

在下面的代碼中,正如您所看到的,我在Test類中聲明了一個變量constObj 同時在構造函數中this指定constObj對象。

為什么我們需要再次聲明的變量,即使我們已經將其分配給this構造函數?

webstorm IDE中,拋出錯誤doesn't have the property constObj ,如果我執行this.constObj ,如果未聲明變量。 但代碼工作正常沒有問題。

聲明變量是強制性的,即使我們將其賦值給this

 const constObj = { a: function() { console.log("sivakumar"); } }; class Test { constObj: any; // Is this line mandatory? I mean declaring it??? constructor() { Object.assign(this, { constObj }); } callMethod() { this.constObj.a(); } } new Test().callMethod(); 

如果我們不申報,請告知,將會發生什么。

聲明變量是強制性的......

它不是一個變量,它是一個屬性。

TypeScript的答案 :是的,它是必需的,因此TypeScript知道Test具有該屬性以進行靜態類型檢查。 (請注意,你已經做了的方式只是宣稱屬性的可能方式之一,但你確實需要申報。)

JavaScript的答案 :不,它不是必需的¹,因為JavaScript不進行靜態類型檢查。


¹(根據當前的規范,這是不可能的,但它很快就會出現並且通常用像Babel這樣的工具進行轉換)

暫無
暫無

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

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