Как мы узнали из моей предыдущей статьи, теперь мы можем использовать функцию inject()
внутри компонентов, директив и каналов. Вот причины, по которым я выбрал его вместо constructor
для внедрения зависимостей. Первое, что я заметил, это то, что он стал чище и читабельнее:
Далее автоматически выводится тип провайдера:
Кроме того, directiveInject()
все равно используется в скомпилированном коде:
Более того, декоратор param не является частью спецификации tc39
.
Наконец, команда Angular, похоже, движется в этом направлении. Мы можем увидеть использование inject()
в новой директиве NgOptimizedImage
, например:
Меня больше всего беспокоит согласованность. Я хотел бы увидеть плагин eslint
, который поможет в этом.
Подпишитесь на меня в Medium или Twitter, чтобы узнать больше об Angular и JS!