ここには、typescriptコードと生成される対応するJavaScriptがあります。 なぜ、microsoftはvarを使用する代わりにthis.greetingを使用し、生成されたjsコードで外部から変数にアクセスしないようにしましたか? typescriptですの民間へのプロパティを変更するだけでコンパイルエラーがスローされますが、jsの生成されたコードは、早い段階でprivate
キーワードの周りの議論の大きな取引がありました同上Typescriptの非公開
//typescript code
class Greeter {
greeting: string; //why is this not private by default???
constructor(message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
let greeter = new Greeter("world");
console.log(greeter.greeting); //why the heck is 'greeting accessible'
//Generated javascript as follows
var Greeter = (function() {
function Greeter(message) {
this.greeting = message; //this should have been a var ????
}
Greeter.prototype.greet = function() {
return "Hello, " + this.greeting;
};
return Greeter;
}());
var greeter = new Greeter("world");
console.log(greeter.greeting); //why the heck is 'greeting accessible'