2016-10-07 5 views
1

Typescriptのクラスのパブリックアクセス修飾子の目的は何ですか?これは、設定するだけで、明示的な方法ですTypescriptのクラスのパブリックアクセス修飾子の目的は何ですか?

+0

アクセス修飾子を指定しない場合は、デフォルトでパブリックになります。コンパイル後の外観は無関係です。 privateまたはprotectedを使用すると、まったく同じJavaScriptが生成されることも知っておく必要があります。 – Hampus

答えて

0

サンプルコードは、TypeScriptとまったく同じです。修飾子publicprivateまたはprotectedをメンバー定義に入れない場合、TypeScriptはデフォルトのものをpublicとして選択します。

Javascriptでは意味がありません.TypeScript transpilerはまったく同じコードを生成するためです。しかし、これらの修飾は、あなたのクラスのメンバーをカプセル化し、それらを作るのに役立ちます:

  • クラスの外からアクセス:のみpublic
  • クラスでのみアクセス:クラスと派生クラスでprivate
  • アクセス可能:protected

この場合も、生成されたJavascriptには修飾語が含まれません。つまり、誰かがあなたのJavaScriptコードを取得した場合、あなたがそれらをprivateと定義したとしてもメンバーにアクセスします。修飾子はTypeScriptでのみ役立ち、開発者が一部のクラスメンバーにアクセスしないように助けます。

+0

** public **修飾子を明示的に指定することをお勧めしますか? –

0

export class Thing { 

    public doStuff(){} 

} 

export class Thing { 

    doStuff(){} 

} 

標準のTSC JS出力はまったく同じであるようだとの違いは何ですか

...方法はpublicです。デフォルトでは、TypeScriptのすべてのクラスメソッド/プロパティはpublic型ですが、コード内でこれを明確にするためにメモすることもできます。

あなたはHandbookでそれについての詳細を読むことができますが、ここでの抜粋です。私たちの例では

デフォルト

によって

公開、我々は自由に私達が全体に宣言したメンバーにアクセスすることができました私たちのプログラムあなたが他の言語のクラスに慣れているなら、上記の例では、これを達成するためにpublicという言葉を使用する必要がないことに気づいたかもしれません。たとえば、C#では、各メンバを明示的にpublicと指定して可視にする必要があります。 TypeScriptでは、各メンバーはデフォルトでパブリックです。

メンバーを明示的に明示的にマークすることができます。

関連する問題