2015-11-07 86 views
0

有人能给我回答以下两个问题:打字稿:变量的声明/属性中的类/方法

1)为什么是不是可以像在综合类属性的方法来声明变量?

我想要什么:private foo: string(编译错误)
我必须做的:var foo: string(无编译器错误)

2)当我声明一个变量作为类的属性,做当我宣布只有在方法中的变量?我不确定Java知识是否适合这种情况。自发地说,我认为它取决于变量的范围(如果在两个或多个方法中需要f.e. - > OR的属性,否则 - >方法的变量)。

谢谢!

+1

因为里面方法创建的变量只有一个可能的范围 - 法范围。 – Fabio

回答

1

如果您提到what you're trying to do,回答您会容易一些。

TypeScript私有类成员在运行时实际上并不是私有的;如果你想实际的隐私,你应该使用一个closure像这样:

class Foo { 
    getSomethingPrivate:() => number 
    constructor() { 
    var somethingPrivate = 1; 
    this.getSomethingPrivate = function() { 
     return somethingPrivate; 
    } 
    } 
}