- Я предполагаю, что вы имеете в виду создание экземпляров под нагрузкой.
- Также я не уверен, что это элегантное решение, но вот мое предложение:
Создать класс, который имеет метод stati c:
class ControllerCreator {
private static constrollerInstances: any = []
private static controllerConstructors : any = [];
static registerControllerClass(ctor: any) {
ControllerCreator.controllerConstructors.push(ctor);
}
static createInstances() {
ControllerCreator.controllerConstructors.forEach(
ctor => constrollerInstances.push(new ctor()) // pushing them to static array to not lose
)
}
}
В вашем декораторе вы должны зарегистрировать конструктор контроллера:
export function MyDecorator<T extends Controller>() {
return (target: new () => T) => {
// Do stuff with the decorator
class newClass extends target {
// ...
}
ControllerCreator.registerControllerClass(newClass);
}
}
И, наконец, в какой-то момент вы должны вызвать:
ControllerCreator.createInstances();