Letra de imprenta utiliza la sintaxis de captador / definidor que es como ActionScript3.
class foo {
private _bar:boolean = false;
get bar():boolean {
return this._bar;
}
set bar(theBar:boolean) {
this._bar = theBar;
}
}
Eso producirá este JavaScript, utilizando la función de ECMAScript 5 Object.defineProperty ().
var foo = (function () {
function foo() {
this._bar = false;
}
Object.defineProperty(foo.prototype, "bar", {
get: function () {
return this._bar;
},
set: function (theBar) {
this._bar = theBar;
},
enumerable: true,
configurable: true
});
return foo;
})();
Así que para usarlo,
var myFoo = new foo();
if(myFoo.bar) { // calls the getter
myFoo.bar = false; // calls the setter and passes false
}
Sin embargo, con el fin de utilizarlo en absoluto, usted debe asegurarse de que el texto mecanografiado objetivos del compilador ECMAScript5. Si está ejecutando el compilador de línea de comandos, utilice la bandera --target como esto;
TSC --target ES5
Si está utilizando Visual Studio, debe editar el archivo de proyecto para agregar la opción a la configuración de la herramienta TypeScriptCompile acumulación. Se puede ver que aquí :
Como @DanFromGermany sugiere a continuación, si su son simplemente la lectura y escritura de una propiedad local, como foo.bar = true, que tiene una pareja setter y getter es una exageración. Siempre se puede añadir más tarde si es necesario hacer algo, como la explotación forestal, siempre que los bienes se lee o escribe.