Angular 13 is Officially Released

Angular 13 – a new version of Google's popular TypeScript language web framework – is now starting to take shape. The two beta releases were released on August 4th and August 11th respectfully. They are both accessible on accessible on GitHub introducing changes to forms and the router.

For the changes made to forms, Angular 13 debuts a new type, `FormControlStatus -- which is a union of all possible status strings for form controls. Also, AbstractControl.status has been narrowed from string to FormControlStatus and StatusChanges have been narrowed from Observable<any> to Observable<FormControlStatus>. Most applications should consume these new types seamlessly, according the Angular Developers following the changelog.

For the changes to the router, a change has been proposed to fix a situation in which the default URL serializer would drop everything afterward, including a question mark in query parameters. This results in incorrect parsing for a navigation to /path?q=hello?&world=123456 as an example. This change provides for correct parsing.

Production releases of Angular are targeted for every six months, meaning version 13 would be completely released by sometime in November. The predecessor Angular 12 release arrived just this May 12th.

Other notable changes for Angular 13 include:

  • For the compiler-cli, a fix has been proposed to use correct module resolution context for absolute imports in d.ts files.
  • Also for the compiler-cli, analysis would be skipped for incremental builds for files without Angular behavior. In an incremental build, the compiler tries to reuse as much analysis data from a prior compilation as possible to avoid doing the analysis work again. For source files without Angular behavior, however, no analysis data would be recorded, with the result that the source file would be reanalyzed each build, even if nothing had changed. This commit avoids the analysis of such source files.
  • For the language service, support would be offered for autocomplete string literal union types in templates.
  • For the router, missing outlet events would be added to RouterOutletContract. This will be needed when components are rendered dynamically via the module federation at some point in the future.