我正在使用 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() 之类的东西来获取它的实例。
这里是 typeDI 和 registerHandler 的文档