Angular: 20.0.0-next.1 Release

Release date:
March 5, 2025
Previous version:
20.0.0-next.0 (released February 26, 2025)
Magnitude:
7,230 Diff Delta
Contributors:
23 total committers
Data confidence:
Commits:

Top Contributors in 20.0.0-next.1

mmalerba
crisbeto
atscott
JeanMeche
arturovt
jessicajaniuk
pkozlowski-opensource
JeevanMahesha
kirjs
AleksanderBodurri

Directory Browser for 20.0.0-next.1

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

Release Notes Published

<a name="20.0.0-next.1"></a>

20.0.0-next.1 (2025-03-05)

common

| Commit | Description | | -- | -- | | fix - 36b60a9705 | clean up onUrlChange listener when root scope is destroyed (#60004) | | fix - 739cadae62 | Handle errors in async pipe subscriptions (#60057) |

compiler

| Commit | Description | | -- | -- | | feat - 51b8ff23ce | support tagged template literals in expressions (#59947) | | fix - 4fe489f1b4 | exponentiation should be right-to-left associative (#60101) | | fix - b70ad3c4e6 | proper handling of typeof, void in RecursiveAstVisitor (#60101) |

compiler-cli

| Commit | Description | | -- | -- | | fix - f9043e24ac | ensure template IDs are not reused if a source file changes (#60152) | | fix - ffb19e64f1 | preserve required parens for nullish coalescing (#60060) | | fix - 7c9b4892e9 | preserve required parens in exponentiation expressions (#60101) |

core

| Commit | Description | | -- | -- | | feat - fe57332fc5 | add input binding support to dynamically-created components (#60137) | | feat - 82aa2c1a52 | add the ability to apply directives to dynamically-created components (#60137) | | feat - 326d48afb4 | drop support for TypeScript older than 5.8 (#60197) | | feat - d260ca3091 | emit template function for template related profiler hooks (#60174) | | feat - 4812215a7b | Expose Injector.destroy on Injector created with Injector.create (#60054) | | feat - 809b5b4596 | introduce new DI profiling event (#60158) | | feat - be44cc8f40 | support listening to outputs on dynamically-created components (#60137) | | fix - 7eb59d3887 | added @angular/compiler as a peer dependency (#55610) | | fix - af02914852 | cache ComponentRef inputs and outputs (#60156) | | fix - 7232ce5b17 | Catch and report rejections in async function of PendingTasks.run (#60044) | | fix - fd12220a35 | defer block render failures should report to application error handler (#60149) | | fix - 3459faadbf | do not allow setInput to be used with inputBinding (#60137) | | fix - ea5eb28865 | input targeting not checking if input exists on host (#60137) | | fix - 0dbf693a4d | prevent invoking replay listeners on disconnected nodes (#60103) | | fix - 7ab0a8d1e7 | prevents event replay from being called on comment nodes (#60130) |

language-service

| Commit | Description | | -- | -- | | fix - d5e91e04ff | Forward the tags for quick info from the type definition (#59524) |

Breaking Changes

common

  • AsyncPipe now directly catches unhandled errors in subscriptions and promises and reports them to the application's ErrorHandler. For Zone-based applications, these errors would have been caught by ZoneJS and reported to ErrorHandler so the result is generally the same. The change to the exact mechanism for reporting can result in differences in test environments that will require test updates. ### core
  • * TypeScript versions less than 5.8 are no longer supported.
  • PendingTasks.run no longer returns the result of the async function. If this behavior is desired, it can be re-implemented manually with the PendingTasks.add. Be aware, however, that promise rejections will need to be handled or they can cause the node process to shut down when using SSR.