Есть такой пример в документах для классов mixins.
type Constructor<T> = new(...args: any[]) => T;
function Tagged<T extends Constructor<{}>>(Base: T) {
return class extends Base {
_tag: string;
constructor(...args: any[]) {
super(...args);
this._tag = "";
}
}
}
Но что, если у меня уже есть реализации Tagged
.Похоже, я просто пытаюсь Base extends Tagged
.Но в моем случае Tagged
имеет реализацию TypeScript в одной 3-й стороне библиотеки, а Base
- это конструктор JS, возвращаемый фабричным методом другой 3-й стороны библиотеки.
Какой лучший способ их смешать?Другими словами, как определить класс mixin на основе уже существующего класса (повторное использование кода)?