我正在动态创建一个嵌套的js服务类:
const generatedClass = {
[className]: class { ... }
}[className]
我想模仿的常用功能
@Injectable()
export class MyService { }
因此,我正在做:
const generatedClass = {
[className]: class { constructor(private dep1: Dep1...) {} }
}[className]
Injectable()(generatedClass)
以模仿注册类的装饰器。然而,在执行此操作时,服务似乎不会与DI容器重新绑定,并且当我注入此服务时,它似乎不会解决构造函数中的依赖关系。
该服务似乎正确注入,但它没有解决服务内部的依赖关系,这让我很困惑。是否可以手动调用Injectable
,或者我是否遗漏了一些步骤?
仔细观察,即使在Typescript的操场上,这也是同样的行为。只是没有办法手动调用decorator并让Typescript发出元数据。您需要添加某种装饰器,无论是@Optional()
还是@Inject()
,以使Typescript正确地输出元数据