使用自定义的ClassDecorator在类实例中注入依赖项

时间:2019-05-01 09:04:11

标签: node.js typescript nestjs typescript-decorator reflect-metadata

我正在为NestJS写一个模块,我想在其中创建一个自定义ClassDecorator

  • 上课@Injectable
  • 在类实例中注入依赖项

以下几行代码说明了我的期望:

// app.module.ts

@Module({
  providers: [AppService, MyClass]
})
export class AppModule {}

// my-class.ts

@MyClassDecorator(AppService)
export class MyClass {}

// Somewhere else where MyClass is injected as `myclass`
console.log(myclass)
// MyClass { injectedThroughDecorator: AppService {} }

我在Google上搜索了很多有关如何实现自定义装饰器的参考,我认为我对此很满意。我还开始阅读一些有关reflect-metadata的文档,因为我认为反思可以帮助我实现这一目标。

下一步是定义一个方法装饰器,该装饰器将可以访问注入了AppService的{​​{1}}实例。

例如,假设MyClassDecorator被实现为AppService

EventEmitter

您对我应该如何实现这样的装饰器有任何建议?任何帮助/示例/参考将不胜感激。最后,不要犹豫,询问我要达到的目标的详细信息或解释。

感谢您的阅读, 祝你有美好的一天!

0 个答案:

没有答案