在typescript中初始化私有变量有时会导致损坏

时间:2014-01-29 18:27:30

标签: typescript

有时当我将变量初始化到方法体中,并且我尝试使用变量时,它通常最终未定义但是如果我将其声明为全局变量(var变量名等)它会很好,这里是一个例如:

var num = 0;
module test{
export class tester{
    increment(){
        num++;
    }
}
}

工作正常,但如果我将代码更改为

module test{
export class tester{
    num : number;
    increment(){
        this.num++;
    }
}
}
它似乎会给出一些乱码或腐败的价值。对于我在打字稿中进行编码时,这种情况发生了很多次,但我经常只是将变量全局化来解决它,但我认为这是不好的做法。有没有理由为何会出现这种情况?

1 个答案:

答案 0 :(得分:3)

您需要使用值初始化num

module test{
    export class tester{
        num : number = 0;
        increment(){
            this.num++;
        }
    }
}

否则你基本上是undefined++NaN

此外,如果您想将变量设为私有,那么您应该通过private num : number = 0;

明确地将其标记为私有