Warning: this package has severe limitations and countless failure edge cases due to how the JS class system works.
A utility for extending multiple classes in JavasScript, enabling the creation of mixins.
docs: https://electrovir.github.io/multi-extend/functions/multiExtend.html
Example usage:
class MyClass extends multiExtend(RegExp, URL) {
constructor() {
super(['w+'], ['https://example.com']);
}
}
This uses Proxy
under the hood to ensure maximum ability to use inherited members.
instanceof
will not work on constructors passed to multiExtend
.
Meaning, the following will always be false:
const baseClass = multiExtend(RegExp, URL);
class MyClass extends baseClass {}
return new MyClass() instanceof baseClass;
Overridden methods will need to be assigned with arrow functions.
example:
class A {
myMethod() {
return 'hi';
}
myMethod2() {
return 'hi';
}
}
class B {
myMethod2() {
return 32;
}
}
class ChildClass extends multiExtend(A, B) {
// this needs an arrow function
override myMethod = () => {
return 'hi';
};
}
Generated using TypeDoc