2016-10-07 87 views
1

Typescript中公共類訪問修飾符的用途是什麼?Typescript中公共類訪問修飾符的用途是什麼?

是什麼

export class Thing { 

    public doStuff(){} 

} 

export class Thing { 

    doStuff(){} 

} 

看來,標準TSC JS輸出是完全一樣的區別...

+0

如果您未指定訪問修飾符,則默認爲公共。編譯後的外觀是無關緊要的。你應該知道使用private或protected也會產生完全相同的JavaScript。 – Hampus

回答

0

您的示例代碼在TypeScript中的含義完全相同。如果您未在成員定義中加入修飾符publicprivateprotected,則TypeScript將選擇默認的public

這對Javascript沒有意義,因爲TypeScript編譯器會生成完全相同的代碼。但是,這些修改器會幫你封裝類成員,並讓他們:

  • 訪問外部類:public
  • 只僅在類訪問:private在類
  • 訪問和派生類:protected

再次生成的JavaScript不包含修飾符。這意味着,如果有人獲得您的Javascript代碼,即使您將其定義爲private,它也將訪問成員。修飾符僅在TypeScript中有用,並幫助開發人員不訪問某些類成員。

+0

顯式指定** public **修飾符是否很好? –

0

它只是設定一個明確的方式該方法是public。默認情況下,TypeScript中的所有類方法/屬性都是public類型的,但爲了清晰起見,您還可以在代碼中註明這一點。

您可以在Handbook閱讀更多關於它,這裏是摘錄:

公共默認

在我們的例子中,我們已經能夠自由地訪問我們整個聲明的成員我們的計劃。如果您熟悉其他語言的課程,您可能在上面的例子中已經注意到我們不必使用public這個詞來實現這一點;例如,C#要求將每個成員明確標記爲公開以便可見。在TypeScript中,每個成員默認都是公共的。

您仍可以明確地標記成員公衆。

相關問題