TypeScript, ActionScript3 gibi bir alıcı / ayarlayıcı sözdizimi kullanır.
class foo {
private _bar: boolean = false;
get bar(): boolean {
return this._bar;
}
set bar(value: boolean) {
this._bar = value;
}
}
Bu, ECMAScript 5 Object.defineProperty()
özelliğini kullanarak bu JavaScript'i üretecektir .
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;
})();
Kullanmak için,
var myFoo = new foo();
if(myFoo.bar) { // calls the getter
myFoo.bar = false; // calls the setter and passes false
}
Ancak, onu kullanmak için, TypeScript derleyicisinin ECMAScript5'i hedeflediğinden emin olmalısınız. Komut satırı derleyicisini çalıştırıyorsanız, --target
böyle bir bayrak kullanın ;
tsc --target ES5
Visual Studio kullanıyorsanız, TypeScriptCompile derleme aracının yapılandırmasına bayrak eklemek için proje dosyanızı düzenlemeniz gerekir. Bunu burada görebilirsiniz :
@DanFromGermany'nin aşağıda belirttiği gibi, sadece yerel bir özelliği okuyup yazıyorsanız foo.bar = true
, bir ayarlayıcı ve alıcı çiftine sahip olmak aşırıdır. Özellik okunduğunda veya yazıldığında günlük kaydı gibi bir şey yapmanız gerekiyorsa bunları daha sonra ekleyebilirsiniz.