有时当我将变量初始化到方法体中,并且我尝试使用变量时,它通常最终未定义但是如果我将其声明为全局变量(var变量名等)它会很好,这里是一个例如:
var num = 0;
module test{
export class tester{
increment(){
num++;
}
}
}
工作正常,但如果我将代码更改为
module test{
export class tester{
num : number;
increment(){
this.num++;
}
}
}
它似乎会给出一些乱码或腐败的价值。对于我在打字稿中进行编码时,这种情况发生了很多次,但我经常只是将变量全局化来解决它,但我认为这是不好的做法。有没有理由为何会出现这种情况?
答案 0 :(得分:3)
您需要使用值初始化num
。
module test{
export class tester{
num : number = 0;
increment(){
this.num++;
}
}
}
否则你基本上是undefined++
,NaN
。
此外,如果您想将变量设为私有,那么您应该通过private num : number = 0;