В чём разница между внедрением зависимостей через конструктор и через функцию inject() в Angular?

Constructor injection объявляет зависимости параметрами класса; inject получает их из активного injection context и удобен в полях или функциональных API.

Короткий ответ

Что ответить на собеседовании

Constructor injection объявляет зависимости параметрами класса; inject получает их из активного injection context и удобен в полях или функциональных API.

Подробный разбор

Ответ с пояснениями

Constructor injection объявляет зависимости параметрами класса; inject получает их из активного injection context и удобен в полях или функциональных API.

Оба используют систему providers. inject нельзя произвольно вызывать позже в любом методе без допустимого контекста. Он может улучшить вывод типов, в том числе optional-зависимостей; переход должен учитывать наследование и совместимость конструктора.

Источник: angular.dev.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее