TypeScript menggunakan sintaks pengambil / penyetel yang seperti ActionScript3.
class foo {
private _bar: boolean = false;
get bar(): boolean {
return this._bar;
}
set bar(value: boolean) {
this._bar = value;
}
}
Itu akan menghasilkan JavaScript ini, menggunakan fitur ECMAScript 5 Object.defineProperty()
.
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;
})();
Jadi untuk menggunakannya,
var myFoo = new foo();
if(myFoo.bar) { // calls the getter
myFoo.bar = false; // calls the setter and passes false
}
Namun, untuk menggunakannya sama sekali, Anda harus memastikan compiler TypeScript menargetkan ECMAScript5. Jika Anda menjalankan kompiler baris perintah, gunakan --target
flag seperti ini;
tsc --target ES5
Jika Anda menggunakan Visual Studio, Anda harus mengedit file proyek Anda untuk menambahkan bendera ke konfigurasi untuk alat membangun TypeScriptCompile. Anda dapat melihatnya di sini :
Seperti yang disarankan @DanFromGermany di bawah ini, jika Anda hanya membaca dan menulis properti lokal foo.bar = true
, maka memiliki pasangan penyetel dan pengambil adalah berlebihan. Anda selalu dapat menambahkannya nanti jika Anda perlu melakukan sesuatu, seperti mencatat, kapan pun properti dibaca atau ditulis.