You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Motivation for features / changes
When tsc's `--target` is updated `es2022` or newer, the initialization
order of parameter properties changes. Inline field initializers that
directly or indirectly reference parameter properties can break with
this change as the parameter properties may be initialized if the
reference occurs too soon.
This can be difficult to accurately statically detect because it's not
always clear if callbacks are executed immediately or later.
Migrating to Angular's `inject()` function solves the problems as
parameter properties are no longer used.
## Technical description of changes
Updates classes where some inline field initializer has an indirect
reference to a parameter property to use Angular `inject()`.
## Screenshots of UI changes (or N/A)
N/A
## Detailed steps to verify changes work correctly (as executed by you)
Should be a no-op refactor. Simply verify test flows the involve all
modified classes.
## Alternate designs / implementations considered (or N/A)
We could also avoid this upcoming issue by moving the inline field
initializers that reference uninitialized parameter properties into the
constructor body. This is generally seen as an inferior change though.
0 commit comments