我正在为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
您对我应该如何实现这样的装饰器有任何建议?任何帮助/示例/参考将不胜感激。最后,不要犹豫,询问我要达到的目标的详细信息或解释。
感谢您的阅读, 祝你有美好的一天!