了解打字稿类中的“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;
}());
答
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
将导致编译时错误。
JavaScript没有任何私人/公共的概念。但是TypeScript的确如此。因此,如果您将该名称设为私有,TypeScript编译器将不会允许您的** TypeScript **代码的其余部分访问该字段,而如果它是公共的,它将会。 –