TypeScript는 ActionScript3와 같은 getter / setter 구문을 사용합니다.
class foo {
private _bar: boolean = false;
get bar(): boolean {
return this._bar;
}
set bar(value: boolean) {
this._bar = value;
}
}
ECMAScript 5 Object.defineProperty()
기능을 사용하여이 JavaScript를 생성 합니다.
var foo = (function () {
function foo() {
this._bar = false;
}
Object.defineProperty(foo.prototype, "bar", {
get: function () {
return this._bar;
},
set: function (value) {
this._bar = value;
},
enumerable: true,
configurable: true
});
return foo;
})();
사용하려면
var myFoo = new foo();
if(myFoo.bar) { // calls the getter
myFoo.bar = false; // calls the setter and passes false
}
그러나이를 사용하려면 TypeScript 컴파일러가 ECMAScript5를 대상으로해야합니다. 명령 행 컴파일러를 실행중인 경우 다음 --target
과 같이 플래그를 사용 하십시오.
tsc --target ES5
Visual Studio를 사용하는 경우 TypeScriptCompile 빌드 도구의 구성에 플래그를 추가하도록 프로젝트 파일을 편집해야합니다. 여기서 볼 수 있습니다 :
@DanFromGermany이 아래에서 제안하는 것처럼 단순히 지역 속성을 읽고 쓰는 foo.bar = true
경우 세터와 게터 쌍을 갖는 것은 과도합니다. 속성을 읽거나 쓸 때마다 로깅과 같은 작업을 수행해야하는 경우 언제든지 나중에 추가 할 수 있습니다.