繁体   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