Я использую Inversify в проекте машинописи. Я создал файл inversify.config.ts и создал несколько фабрик inversify. Вот пример одной из моих фабрик:
InversifyConfig.bind<MyClass>(MyClass).toSelf();
InversifyConfig.bind<interfaces.Factory<MyClass>>("Factory<MyClass>")
.toFactory<MyClass>((context: interfaces.Context) => {
return (obj: object) => {
let myClass = context.container.get<MyClass>(MyClass); // services are injected here
myClass.initObject(obj);
return myClass;
}
});
Это работает хорошо, так что я могу легко ввести свою фабрику. Но у меня есть около 10 классов, таких как MyClass, и все они расширяют MySuperClass (который имеет свойство "obj"). Пока я просто копирую / вставляю этот код 10 раз для всех классов. Интересно, смогу ли я сделать обобщенную функцию c для создания всех этих фабрик. Все, что я пробовал до сих пор, не сработало, потому что я не знаю, как передать параметр Class в мою функцию. Может ли кто-нибудь иметь представление о том, как добиться того, чего я хочу? Спасибо;)