If you're still using *ngIf, *ngFor, and *ngSwitch, Angular 19 just gave you a reason to upgrade your template game.
Angular now supports JavaScript-style control flow syntax directly in your templates:
@if (user) {
Hello, {{ user.name }}!
} @else {
Please log in.
}
@for (item of items; track item.id) {
{{ item.name }}
} @empty {
No items found.
}
@switch (status) {
@case ('success') { Success! }
@case ('error') { Error! }
@default { Unknown }
}
✅ More readable
✅ Less boilerplate
✅ Built-in @empty
and real @else
blocks
✅ IDE-friendly and intuitive
Want to see side-by-side comparisons with the old syntax?
👉 Read the full breakdown