Как мы можем использовать миксины TypeScript с внедрением зависимостей? - PullRequest
0 голосов
/ 07 октября 2019

Когда я использую миксины для множественного наследования, если в каком-либо из классов, от которых я наследую, есть внедрение зависимостей, как я могу использовать super ()?

Пример кода:

Mixin:

export const applyMixins = (derivedCtor: any, baseCtors: any[]) => {
  baseCtors.forEach(baseCtor => {
    Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
      Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype, name));
    });
  });
};

Конструктор AsyncComponent:

export class AsyncComponent {
  constructor(private communication: CommunicationsService) {}
}

Интерфейс:

export interface DashboardPageComponent extends AsyncComponent {}

Конструктор:

export class DashboardPageComponent {

constructor(private myPropertiesService: MyPropertiesService, private state: StateService) {
    super()
  }
}

Я получаю следующую ошибку:

На 'super' можно ссылаться только в производном классе

С другой стороны, как использовать super (), если я наследую несколько классов с внедрением зависимостей

...