2016-08-02 49 views
1

在下面的類型腳本代碼中,無論名稱是「public」還是 「private」,生成的java腳本代碼都是相同的。瞭解打字稿類中的「public」/「private」

所以我的問題是,如何決定什麼時候構造函數參數應該是 公有還是私有?所產生

// typescript code 
class Animal { 
constructor(public name: string) {  
} 

} 

// generated JS code 
var Animal = (function() { 
function Animal(name) { 
    this.name = name; 
} 
return Animal; 
}()); 
+2

JavaScript沒有任何私人/公共的概念。但是TypeScript的確如此。因此,如果您將該名稱設爲私有,TypeScript編譯器將不會允許您的** TypeScript **代碼的其餘部分訪問該字段,而如果它是公共的,它將會。 –

回答

1

Java腳本代碼是相同

他們產生相同的JavaScript,但不具有相同的語義至於類型而言。

private成員只能從課程內部訪問,而public可以在外部進行訪問。

更多

的差異這裏介紹:https://basarat.gitbooks.io/typescript/content/docs/classes.html#access-modifiers

又如

let foo = 123; 

將產生相同的ES5作爲

const foo = 123; 

然而,在第一種情況下let foo = 123;foo = 456將編譯很好,但是const foo = 123; foo = 456將導致編譯時錯誤。