Angular: 20.0.0-next.5 Release

Release date:
April 17, 2025
Previous version:
20.0.0-next.4 (released April 17, 2025)
Magnitude:
11,333 Diff Delta
Contributors:
40 total committers
Data confidence:
Commits:

Top Contributors in 20.0.0-next.5

JeanMeche
AndrewKushnir
arturovt
crisbeto
dgp1130
atscott
alxhub
jessicajaniuk
pkozlowski-opensource
sheikalthaf

Directory Browser for 20.0.0-next.5

We haven't yet finished calculating and confirming the files and directories changed in this release. Please check back soon.

Release Notes Published

| Commit | Description | | -- | -- | | fix - a7d1293f75 | step 6 tutorial docs (#60630) |

animations

| Commit | Description | | -- | -- | | fix - 5eccf3a5e5 | add missing peer dependency on @angular/common (#60660) |

compiler

| Commit | Description | | -- | -- | | fix - 8b990a31c3 | error if rawText isn't estimated correctly (#60529) | | fix - e6d2afbfb9 | throw for invalid "as" expression in if block (#60580) |

compiler-cli

| Commit | Description | | -- | -- | | fix - 1e6faad479 | correctly parse event name in HostListener (#60561) | | fix - 5948cd03c5 | Produce fatal diagnostic on duplicate decorated properties (#60376) | | fix - 7e03af898e | set correct target when type checking events (#60561) | | fix - 9f18c7cc74 | support relative imports to symbols outside rootDir (#60555) |

core

| Commit | Description | | -- | -- | | feat - a4bad8d361 | export signalGetFn from signal primitives (#60497) | | feat - 7ccec1494f | move DOCUMENT token into core (#60663) | | feat - fe9b79b615 | update Node.js version support (#60545) | | fix - 5f7f04634f | call DestroyRef on destroy callback if view is destroyed (#58008) | | fix - 765ba1e181 | check ngDevMode for undefined (#60565) | | fix - 7b819be83f | Ensure errors in listeners report to the application error handler (#60251) | | fix - cdbc6e8ec1 | fix ng generate @angular/core:output-migration (#60626) | | fix - fd5c981a29 | fix regexp for event types (#60592) | | fix - 6acce7ca2a | fixes #592882 ng generate @angular/core:signal-queries-migration (#60688) | | fix - 0cd7d3bdf0 | preserve comments in internal inject migration (#60588) | | fix - 005ad65b1f | prevent omission of deferred pipes in full compilation (#60571) | | fix - 1c7b356625 | release hasPendingTasks observers (#59723) | | fix - 43cbc58254 | remove forceRoot flag for effects (#60535) | | fix - a611b234d7 | run root effects in creation order (#60534) | | refactor - b407157ee8 | Deprecate the structural directives ngIf/ngFor/ngSwitch. (#60492) |

forms

| Commit | Description | | -- | -- | | feat - a07ee60989 | add markAllAsDirty to AbstractControl (#58663) | | feat - bdfbd54932 | Allow to reset a form without emitting events (#60354) |

language-service

| Commit | Description | | -- | -- | | fix - ea62a4f317 | Update adapter to log instead of throw errors (#60651) |

migrations

| Commit | Description | | -- | -- | | fix - 0c53970aeb | handle shorthand assignments in super call (#60602) | | fix - 3ff48b6467 | inject migration not handling super parameter referenced via this (#60602) |

router

| Commit | Description | | -- | -- | | feat - 0bb4bd661e | Add ability to directly abort a navigation (#60380) | | feat - ff98ccb193 | support custom elements for RouterLink (#60290) | | fix - 1226eaad51 | Add missing types to transition (#60307) | | fix - c57951d58f | Remove 'any' type from route guards (#60378) |

service-worker

| Commit | Description | | -- | -- | | fix - 4546d4fb39 | assign initializing client's app version, when a request is for worker script (#58131) |

Breaking Changes

core

  • - Angular no longer supports Node.js v18.
    • Node.js versions 22.0 to 22.10 are also no longer supported.

Before upgrading to Angular v20, ensure the Node.js version is at least 20.11.1. For the full list of supported versions, visit: https://angular.dev/reference/versions - Uncaught errors in listeners which were previously only reported to ErrorHandler are now also reported to Angular's internal error handling machinery. For tests, this means that the error will be rethrown by default rather than only logging the error. Developers should fix these errors, catch them in the test if the test is intentionally covering an error case, or use rethrowApplicationErrors: false in configureTestingModule as a last resort.

router

  • The guards arrays on Route no longer include any in the type union. The union includes functions for the functional guards as well as a type matching Injector.get: ProviderToken<T>|string. Note that string is still deprecated on both the route guards and Injector.get. ## Deprecations ### core
  • ngIf/ngFor/ngSwitch are deprecated. Use the control flow blocks instead (@for/@if/@switch).