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.
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.
linkedSignalandresourceas 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.
afterRenderis renamed toafterEveryRender.TestBed.get()and theInjectFlagsenum are removed.TestBed.flushEffects()is replaced byTestBed.tick().- In the resource API,
requestis renamed toparams. ng-reflect-*attributes are no longer available by default.- In tests, uncaught errors in event listeners are rethrown by default.
*ngIf,*ngForand*ngSwitchare 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
interpolationandmoduleIdproperties of@Componentare removed, andNgModuleFactoryis removed. UpgradeAdapteris 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
- Update to the latest 19.2.x patch, confirm that the build and the tests pass, and commit.
- Move CI and local machines to Node.js 20.19, 22.12 or later.
- Run
ng update @angular/core@20 @angular/cli@20, thenng update @angular/material@20. - Replace
TestBed.get()and the renamed APIs, and fix the tests. - Update third-party libraries, run the tests and release.
- 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
- Angular 20: end of life and how to upgrade
- How to upgrade an Angular app that is many versions behind
- Angular version support and end of life
- Angular 9: end of life and how to upgrade
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