Javascript Nestjs:将提供程序注入到由关键字new创建的对象中

Javascript Nestjs:将提供程序注入到由关键字new创建的对象中,javascript,node.js,typescript,dependency-injection,nestjs,Javascript,Node.js,Typescript,Dependency Injection,Nestjs,我正在尝试向new创建的对象注入提供程序。可能吗?例如: @Injectable() export class SomeService { } export class SomeObject { @Inject() service: SomeService; } let obj = new SomeObject(); 在我的测试中,它不起作用,obj.service未定义。否,依赖项注入系统将只对使用它创建的对象起作用。 您可以创建SomeObject,例如使用useClass: @In

我正在尝试向
new
创建的对象注入提供程序。可能吗?例如:

@Injectable()
export class SomeService {
}

export class SomeObject {

@Inject()
service: SomeService;
}

let obj = new SomeObject();

在我的测试中,它不起作用,
obj.service
未定义。

否,依赖项注入系统将只对使用它创建的对象起作用。 您可以创建
SomeObject
,例如使用
useClass

@Injectable()
class SomeObject {
  constructor(private someService: SomeService) {}
}

@Module({
  providers: [
   SomeService,
   { provide: SomeObject, useClass: SomeObject },
  ],
})
export class ApplicationModule {}
或使用
使用工厂
进行自定义设置逻辑:

const someObjectFactory = {
  provide: 'SomeObject',
  useFactory: (someService: SomeService) => {
    // custom setup logic
    return new SomeObject(someService);
  },
  inject: [SomeService],
};

@Module({
  providers: [SomeService, connectionFactory],
})
export class ApplicationModule {}

不,依赖项注入系统将只处理用它创建的对象。 您可以创建
SomeObject
,例如使用
useClass

@Injectable()
class SomeObject {
  constructor(private someService: SomeService) {}
}

@Module({
  providers: [
   SomeService,
   { provide: SomeObject, useClass: SomeObject },
  ],
})
export class ApplicationModule {}
或使用
使用工厂
进行自定义设置逻辑:

const someObjectFactory = {
  provide: 'SomeObject',
  useFactory: (someService: SomeService) => {
    // custom setup logic
    return new SomeObject(someService);
  },
  inject: [SomeService],
};

@Module({
  providers: [SomeService, connectionFactory],
})
export class ApplicationModule {}