Παίζω γύρω με γραφομηχανή, και έχω ένα ζευγάρι λειτουργική τα μείγματα , Eventableκαι Settableότι θα ήθελα να Μίχίη σε μια Modelκατηγορία (προσποιούνται ότι είναι κάτι σαν ένα μοντέλο Backbone.js):
function asSettable() {
this.get = function(key: string) {
return this[key];
};
this.set = function(key: string, value) {
this[key] = value;
return this;
};
}
function asEventable() {
this.on = function(name: string, callback) {
this._events = this._events || {};
this._events[name] = callback;
};
this.trigger = function(name: string) {
this._events[name].call(this);
}
}
class Model {
constructor (properties = {}) {
};
}
asSettable.call(Model.prototype);
asEventable.call(Model.prototype);
Ο παραπάνω κώδικας λειτουργεί καλά, αλλά δεν θα συγκεντρώνουν αν προσπάθησα να χρησιμοποιήσετε μία από τις μικτού στις μεθόδους όπως (new Model()).set('foo', 'bar').
Μπορώ να επιλύσετε αυτό το πρόβλημα
- προσθέτοντας
interfaceδηλώσεις για τις τα μείγματα - δηλώνοντας κινήσεις
get/set/on/triggerμεθόδους με τηModelδήλωση
Είναι ένα καθαρό τρόπο γύρω από τις δηλώσεις εικονική εκεί;













