Γραφομηχανή χρησιμοποιεί κτήτορας / setter σύνταξη που είναι σαν Actionscript3.
class foo {
private _bar:boolean = false;
get bar():boolean {
return this._bar;
}
set bar(theBar:boolean) {
this._bar = theBar;
}
}
Αυτό θα παράγουν αυτό το Javascript, χρησιμοποιώντας τη λειτουργία 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;
})();
Έτσι για να το χρησιμοποιήσετε,
var myFoo = new foo();
if(myFoo.bar) { // calls the getter
myFoo.bar = false; // calls the setter and passes false
}
Ωστόσο, προκειμένου να το χρησιμοποιήσει σε όλα, θα πρέπει να βεβαιωθείτε ότι η στόχους γραφομηχανή compiler ECMAScript5. Εάν εκτελείτε τον compiler γραμμή εντολών, χρησιμοποιήστε --target σημαία σαν αυτό?
TSC --target ES5
Εάν χρησιμοποιείτε το Visual Studio, πρέπει να επεξεργαστείτε το αρχείο έργου σας για να προσθέσετε τη σημαία στη διαμόρφωση του εργαλείου TypeScriptCompile κατασκευής. Μπορείτε να δείτε ότι εδώ :
Όπως @DanFromGermany υποδηλώνει κάτω, αν σας είναι απλά διαβάζοντας και γράφοντας ένα τοπικό ακίνητο, όπως foo.bar = true, στη συνέχεια, έχοντας ένα setter και κτήτορας ζευγάρι είναι υπερβολή. Μπορείτε πάντα να τα προσθέσετε αργότερα αν χρειαστεί να κάνουμε κάτι, όπως υλοτομία, όταν το ακίνητο έχει διαβάσει ή να γράψει.