Внедрение услуги в Nestjs - PullRequest
0 голосов
/ 11 марта 2020

Я как бы рефакторинг некоторого унаследованного кода, и я написал сервис, который я хотел бы внедрить в конструктор класса. Об этом классе следует отметить две важные вещи. Во-первых, он создается фабрикой, а во-вторых, он является родительским для другого класса.

class A extends AParent implements IA {
    constructor(
        protected someService: SomeService,
    )
}


class B extends A {
    constructor(
        protected someService: SomeService,
    )
    super(someService);
}

Теперь фабрика говорит, что не может создать экземпляр класса A, потому что его конструктор требует Аргумент, который является службой.

Как правильно обойти это?

1 Ответ

0 голосов
/ 11 марта 2020

Не знаю, может ли это быть ответом, но в любом случае.

class A extends AParent implements IA {
  constructor(protected someService: SomeService) // Removing `,` after service argument
  {
    // Forgotten `{}` brackets.
  }
}

class B extends A {
  constructor()
  {
    // Since you already have an instance of `SomeService` in parent class
    // I think you don't need to pass it to constructor of class B.
  }
}
...