मैं टाइपप्रति के साथ चारों ओर खेल रहा हूँ, और मैं एक जोड़े को मिल गया है कार्यात्मक mixins , Eventableऔर Settable, कि मैं एक के लिए Mixin करना चाहते हैं 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')।
मैं इस के चारों ओर से काम कर सकते हैं
- जोड़ने
interfacemixins के लिए घोषणाओं - घोषित डमी
get/set/on/triggerमें तरीकोंModelघोषणा
वहाँ डमी घोषणाओं के चारों ओर एक स्वच्छ रास्ता नहीं है?













