Паттерн для организации Partial классов:
base.js
export class Base {
get() {
return 1;
}
}
child.js
import { Base } from 'base';
export class Child extends Base {
}
child-mixin.js
import { Child } from 'child';
extend(Child, /** @lends {Child.prototype} */ { // Аннотация для автокомплита в WS11 и GCC
get() {
return super.get(); // super работает
}
});
Сама функция extend
function extend(Class, mixin) {
mixin.__proto__ = Class.__proto__.prototype;
for (let key in mixin) {
Class.prototype[key] = mixin[key];
}
}