Angular 18: fin de soporte y cómo actualizar
Angular 18 estabilizó el control flow integrado y las deferrable views, y publicó la detección de cambios zoneless en modo experimental. No tiene soporte desde noviembre de 2025.
Fechas de lanzamiento y soporte
Angular 18 se publicó en mayo de 2024. El soporte activo terminó en noviembre de 2024 y el soporte de largo plazo terminó en noviembre de 2025. Hoy no recibe parches de seguridad. Las fechas de cada versión están en Soporte y fin de vida de las versiones de Angular.
Qué introdujo Angular 18
- Detección de cambios zoneless experimental, activada con
provideExperimentalZonelessChangeDetection(). - Control flow integrado y deferrable views estables. Ambos salieron de developer preview.
- Material 3 estable en Angular Material.
- Signal inputs, queries basadas en signals y la nueva sintaxis de outputs en developer preview.
- Mejoras de server-side rendering: hidratación para bloques i18n y event replay, ambos en developer preview.
- angular.dev como sitio oficial de documentación.
- Agregados menores: contenido por defecto para
ng-content, un observableeventsunificado en los controles de formulario yredirectTocomo función. - Herramientas para pasar al application builder, y TypeScript 5.4.
Qué revisar al actualizar
De 18 a 19:
- Se requiere TypeScript 5.5 o posterior.
standalonepasa a sertruepor defecto.ng updateagregastandalone: falsea cada declaración que pertenece a un NgModule.- Las variables de referencia de template ya no se pueden leer con el prefijo
this.. Router.errorHandlerse reemplaza porwithNavigationErrorHandlerenprovideRouter, o porerrorHandlerenRouterModule.forRoot.fakeAsyncvacía los timers pendientes por defecto.- Cambió el momento en que se ejecuta
effect(), y la opciónallowSignalWritesqueda deprecada. - Se elimina el builder de Protractor del CLI.
De 19 a 20:
- Node.js 18 deja de estar soportado. La tabla de versiones indica Node 20.19, 22.12 y 24 para Angular 20.
- Se requiere TypeScript 5.8 o posterior.
afterRenderpasa a llamarseafterEveryRender.- Se eliminan
TestBed.get()y el enumInjectFlags.TestBed.flushEffects()se reemplaza porTestBed.tick(). provideExperimentalZonelessChangeDetectionpasa a llamarseprovideZonelessChangeDetection.- Los atributos
ng-reflect-*dejan de estar disponibles por defecto, lo que afecta a las pruebas que los consultan. *ngIf,*ngFory*ngSwitchquedan deprecados en favor del control flow integrado.
Un plan corto de actualización
- Actualiza al último parche de 18.2.x, confirma que el build y las pruebas pasan, y haz commit.
- Ejecuta
ng update @angular/core@19 @angular/cli@19y luegong update @angular/material@19. - Revisa los cambios de
standalone: falseque agrega la migración. Mantienen el código basado en NgModules funcionando como antes. - Pasa el CI y las máquinas locales a una versión de Node.js soportada por Angular 20 antes de ese paso.
- Actualiza las librerías de terceros, corrige las deprecaciones, corre las pruebas y publica.
- Repite con la siguiente versión mayor. La siguiente parada es Angular 19.
Cuándo conviene pedir ayuda
Cuatro versiones mayores separan a la v18 de la versión actual. Conviene pedir ayuda si la app mezcla NgModules, componentes standalone y las primeras APIs de signals de una forma que hace difícil revisar las migraciones, si las pruebas dependen de los tiempos de fakeAsync, o si el equipo tiene una fecha fija para volver a una versión con soporte. El orden de trabajo está en Estrategia para actualizar versiones antiguas de Angular.
Más en esta sección
- Angular 19: fin de soporte y cómo actualizar
- Angular 20: fin de soporte y cómo actualizar
- Cómo actualizar una app Angular con muchas versiones de atraso
- Soporte y fin de vida de las versiones de Angular
¿Planeas una migración o una plataforma de microfrontends?
En una llamada de 20 minutos me cuentas tu situación y te digo cómo la abordaría. Si todavía no vale la pena, también te lo digo.
Escríbeme por LinkedIn