Длинная форма внедрения службы в конструктор класса - PullRequest
0 голосов
/ 17 мая 2018
constructor(private myService: MyService) {
}

какова длинная форма внедрения службы в конструктор класса? Я хочу переработать вышесказанное в нечто вроде:

private myService;
constructor() {
    this.myService = new MyService();
}

но теперь кричит, что MyService ожидает два параметра (в полной форме)

Почему краткая форма работает без явного указания параметров?

1 Ответ

0 голосов
/ 17 мая 2018

Оба способа одинаковы, просто вы делегируете часть назначения в систему и потребляете все, что вам нужно.

Предположим, что если у вашего сервиса есть зависимости, вам понадобится

const dep1 = new Dep1();
const subDep = new SubDep();
const dep2 = new Dep2(subDep);
this.myService = new MyService(dep1, dep2)

всегда лучше следовать первому подходу, потому что система все делает автоматически

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...