Nest.js 手动调用时,喷油器装饰器似乎没有注册服务



我正在动态创建一个嵌套的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正确地输出元数据

相关内容

最新更新