Carlos Cifuentes
Angular versions · v19

Angular 19: end of life and how to upgrade

Angular 19 made standalone the default and stabilized signal inputs, outputs and queries. Its long-term support ended in May 2026, so it is the most recent version without support.

By Carlos Cifuentes · Frontend architect · Updated 2026-10-02

Release and support dates

Angular 19 was released in November 2024. Active support ended in May 2025 and long-term support ended in May 2026. As of October 2026 it no longer receives security patches. The dates for every major are in Angular version support and end of life.

What Angular 19 introduced

  • Standalone by default. Components, directives and pipes are standalone unless they declare standalone: false.
  • Stable signal inputs, outputs and view queries, with schematics that migrate the decorator-based versions.
  • linkedSignal and resource as experimental APIs.
  • Incremental hydration in developer preview, and event replay stable and enabled by default in new server-side rendered apps.
  • Route-level render mode in developer preview, to choose server, client or prerender per route.
  • Hot module replacement for styles by default, with template HMR as an experimental option.
  • Angular Material additions: a time picker and a simpler theming API with mat.theme.
  • Testing changes: Karma can use the application builder in developer preview, and the Protractor builder is removed.

What needs attention when you upgrade

From 19 to 20:

  • Node.js 18 is no longer supported. The version table lists Node 20.19, 22.12 and 24 for Angular 20.
  • TypeScript 5.8 or later is required.
  • afterRender is renamed to afterEveryRender.
  • TestBed.get() and the InjectFlags enum are removed. TestBed.flushEffects() is replaced by TestBed.tick().
  • In the resource API, request is renamed to params.
  • ng-reflect-* attributes are no longer available by default.
  • In tests, uncaught errors in event listeners are rethrown by default.
  • *ngIf, *ngFor and *ngSwitch are deprecated.

From 20 to 21:

  • TypeScript 5.9 or later is required.
  • New apps are zoneless by default. For existing zone-based apps, a migration adds provideZoneChangeDetection() to the root providers.
  • Type checking of host bindings is on by default and can surface new build errors.
  • The interpolation and moduleId properties of @Component are removed, and NgModuleFactory is removed.
  • UpgradeAdapter is removed. Hybrid AngularJS apps must use the APIs in @angular/upgrade/static.
  • In tests that use provideZoneChangeDetection, TestBed now rethrows errors. Router navigations in tests may take extra microtasks.

A short upgrade approach

  1. Update to the latest 19.2.x patch, confirm that the build and the tests pass, and commit.
  2. Move CI and local machines to Node.js 20.19, 22.12 or later.
  3. Run ng update @angular/core@20 @angular/cli@20, then ng update @angular/material@20.
  4. Replace TestBed.get() and the renamed APIs, and fix the tests.
  5. Update third-party libraries, run the tests and release.
  6. Continue to v21 and then v22. Stopping at Angular 20 only buys time until November 2026.

When it is worth getting help

Three upgrades take a v19 app to the current version, and the official update guide covers each one. Help is worth it if the app is a hybrid that still loads AngularJS, because v21 removes UpgradeAdapter. In that case start with AngularJS migration. It is also worth it if the team needs to be on a supported version by a fixed audit date. The general plan is in Angular upgrade strategy for old versions.

More in this section

Planning a migration or a micro-frontend platform?

In a 20-minute call you describe your situation and I tell you how I'd approach it. If it isn't worth doing yet, I'll say so.

Message me on LinkedIn