2015-11-07 152 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; 
    } 
    } 
}