Constructor injection объявляет зависимости параметрами класса; inject получает их из активного injection context и удобен в полях или функциональных API.
В чём разница между внедрением зависимостей через конструктор и через функцию inject() в Angular?
Constructor injection объявляет зависимости параметрами класса; inject получает их из активного injection context и удобен в полях или функциональных API.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Constructor injection объявляет зависимости параметрами класса; inject получает их из активного injection context и удобен в полях или функциональных API.
Оба используют систему providers. inject нельзя произвольно вызывать позже в любом методе без допустимого контекста. Он может улучшить вывод типов, в том числе optional-зависимостей; переход должен учитывать наследование и совместимость конструктора.
Источник: angular.dev.