首页 > 解决方案 > 反转打字稿通用工厂

问题描述

我在打字稿项目中使用 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 次。我想知道我是否可以创建一个通用函数来创建所有这些工厂。到目前为止我尝试的所有方法都不起作用,因为我不知道如何将 Class 参数传递给我的函数。谁能知道如何实现我想要的?谢谢 ;)

标签: typescriptgenericsinversifyjs

解决方案


推荐阅读