여기에 타이프 스크립트 코드와 해당 JavaScript가 생성됩니다. 왜 Microsoft는 var를 사용하는 대신 this.greeting을 사용하고 생성 된 js 코드에서 외부에서 변수에 액세스하지 못하도록 선택 했습니까? 타이프에서 비공개로 속성을 변경 만 컴파일 오류가 발생하지만, 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'