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