如何获取typedi的自定义装饰器的实例

时间:2021-05-04 07:22:09

标签: typescript typedi

我正在使用 typeDi

//eventDispatcher.ts

import { EventDispatcher as EventDispatcherClass } from "event-dispatch";
import { Container } from "typedi";

export function EventDispatcher() {
  return (object: any, propertyName: string, index?: number): void => {
    const eventDispatcher = new EventDispatcherClass();
    Container.registerHandler({ object, propertyName, index, value: () => eventDispatcher });
  };
}

export { EventDispatcher as EventDispatcherInterface } from "event-dispatch";

然后我可以在服务中使用它,例如:

//authService.ts

import { Service } from "typedi";
import { EventDispatcher, EventDispatcherInterface } from "../decorators";

@Service()
export default class AuthService {
  constructor(@EventDispatcher() public eventDispatcher: EventDispatcherInterface) {
  }
}

但是如何在函数中获取 EventDispatcher 的实例。因为那里没有类/构造函数。 如何使用 Container.get() 之类的东西来获取它的实例。

这里是 typeDIregisterHandler 的文档

0 个答案:

没有答案