Why Angular 14’s new inject() function is so amazing?
As you have probably already read, Angular 14 shipped some very interesting features: typed forms (which can still be improved, see how here), standalone components, and, the focus of this article, the ability to use the inject( ) function during the so-called constructor phase.
Let’s break the above sentence in 2.
What is the inject() function
The inject() function takes an InjectionToken as a parameter and returns the value for that InjectionToken from the currently active injector. Basically, it’s another way to get a hold of a dependency other than using constructor injection. Here’s an example.
Might seem like “it’s different, but the same”, but bear with me. You will see how powerfull this new mechanism really is.
What is the constructor phase
The constructor phase means the constructor function scope and field initializers. This means that you cannot call the inject() function inside @Input() setters or any other function or lifecycle hook. Here is an example to better understand it.