我一直在寻找 TSyringe 是否有可能注入所有实现某个接口(或从抽象类扩展)的类,如下所示:
@injectable()
export interface IService {
foo(): void;
}
@injectable()
export class Service1 implements IService {
foo() { console.out("bar"); }
}
@injectable()
export class Service2 implements IService {
foo() { console.out("baz"); }
}
export class CollectorService {
constructor(
@inject('Service')
services: IService[]
) {
services.forEach(s => s.foo());
}
}
我一个月前才开始使用 TSyringe,所以我对所有功能都不熟悉,也不知道如何在 DI 容器中注册这种依赖项(如果可以实现我的建议)。我正在尝试模仿 Spring@Autowire
注释。