了解打字稿类中的“public”/“private”

问题描述:

在下面的类型脚本代码中,无论名称是“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 **代码的其余部分访问该字段,而如果它是公共的,它将会。 –

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将导致编译时错误。