Carlos Cifuentes
Versiones de Angular · v17

Angular 17: fin de soporte y cómo actualizar

Angular 17 introdujo el control flow integrado, las deferrable views y el application builder basado en esbuild. No tiene soporte desde mayo de 2025.

Por Carlos Cifuentes · Arquitecto frontend · Actualizado 2026-10-02

Fechas de lanzamiento y soporte

Angular 17 se publicó en noviembre de 2023. El soporte activo terminó en mayo de 2024 y el soporte de largo plazo terminó en mayo 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 17

  • Control flow integrado en developer preview. Los bloques @if, @for y @switch reemplazan a las directivas estructurales, con una migración automática: ng generate @angular/core:control-flow.
  • Deferrable views en developer preview. Los bloques @defer cargan de forma diferida partes de un template.
  • Hidratación estable y el paquete @angular/ssr, que toma el lugar del express engine de Angular Universal.
  • El application builder, basado en esbuild y Vite, estable y activado por defecto en proyectos nuevos.
  • Standalone por defecto en proyectos nuevos. ng generate crea componentes, directivas y pipes standalone.
  • Signals fuera de developer preview, con effect todavía en preview.
  • Nuevos lifecycle hooks: afterRender y afterNextRender.
  • El sitio de documentación angular.dev, lanzado en beta.

Qué revisar al actualizar

De 17 a 18:

  • Se requieren Node.js 18.19 o posterior y TypeScript 5.4 o posterior.
  • El helper de pruebas async se reemplaza por waitForAsync.
  • StateKey y TransferState se importan desde @angular/core.
  • Las pruebas pueden ejecutar rondas adicionales de detección de cambios, y ComponentFixture.whenStable puede esperar más que antes.
  • Los guards y resolvers pueden devolver un RedirectCommand, y redirectTo puede ser una función. El código que lee objetos Route directamente debe manejar ambos casos.
  • Las apps que combinaron Angular 17 con Angular Material 16 deben terminar el paso a los componentes MDC.

De 18 a 19:

  • Se requiere TypeScript 5.5 o posterior.
  • standalone pasa a ser true por defecto. ng update agrega standalone: false a cada declaración que pertenece a un NgModule.
  • Las variables de referencia de template ya no se pueden leer con el prefijo this..
  • Router.errorHandler se reemplaza por withNavigationErrorHandler en provideRouter, o por errorHandler en RouterModule.forRoot.
  • fakeAsync vacía los timers pendientes por defecto, y las pruebas que dependen de los tiempos de la detección de cambios pueden necesitar ajustes.
  • Se elimina BrowserModule.withServerTransition(). Configura el token APP_ID.
  • Se elimina el builder de Protractor del CLI.

Un plan corto de actualización

  1. Actualiza al último parche de 17.3.x, confirma que el build y las pruebas pasan, y haz commit.
  2. Ejecuta ng update @angular/core@18 @angular/cli@18 y luego ng update @angular/material@18.
  3. Corrige las pruebas que fallan por los cambios en los tiempos de la detección de cambios.
  4. Reemplaza las pruebas e2e de Protractor antes del paso a la v19.
  5. Actualiza las librerías de terceros, corrige las deprecaciones, corre las pruebas y publica.
  6. Repite con la siguiente versión mayor. La siguiente parada es Angular 18.

Las migraciones opcionales, como el control flow, los componentes standalone y el application builder, pueden esperar. Ejecútalas como cambios separados cuando la actualización de versión esté estable.

Cuándo conviene pedir ayuda

Cinco versiones mayores separan a la v17 de la versión actual, y cada una tiene un camino con ng update. Conviene pedir ayuda si la suite de pruebas es grande y frágil, si la app todavía corre pruebas e2e en Protractor, o si el equipo quiere llegar rápido a una versión con soporte y modernizar después con un plan claro. El orden de trabajo está en Estrategia para actualizar versiones antiguas de Angular.

Más en esta sección

¿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