Javascript 使用新操作员时是否可以进行依赖注入?
实际上,我想实施某种策略模式。更准确地说,我想决定在运行时实例化哪个类 当然这很简单Javascript 使用新操作员时是否可以进行依赖注入?,javascript,node.js,typescript,dependency-injection,nestjs,Javascript,Node.js,Typescript,Dependency Injection,Nestjs,实际上,我想实施某种策略模式。更准确地说,我想决定在运行时实例化哪个类 当然这很简单 if(...) { this.service = new ServiceA(); } else { this.service = new ServiceB(); } 但是如果ServiceA和ServiceB在它们的类中使用依赖注入呢?我必须传递这些实例,还是有更好的方法让nest自动注入它们?您可以注入这两个服务,然后动态地将它们分配给变量: service: Service; constructor(pr
if(...) {
this.service = new ServiceA();
} else {
this.service = new ServiceB();
}
但是如果ServiceA和ServiceB在它们的类中使用依赖注入呢?我必须传递这些实例,还是有更好的方法让nest自动注入它们?您可以注入这两个服务,然后动态地将它们分配给变量:
service: Service;
constructor(private serviceA: ServiceA, private serviceB: ServiceB) {}
dynamicMethod() {
if (...) {
this.service = this.serviceA;
} else {
this.service = this.serviceB;
}
}
如果可以在启动时评估条件(例如,环境变量),则可以改用。否,不能创建依赖项并将其注入。尽管Kim在下面为你提供了一个很好的选择