Angular 11, a planned upgrade to the Google-developed web framework, has reached the release candidate stage, after seven beta releases. So far the proposed additions and changes include stricter types, router performance improvements, and the removal of support for certain Internet Explorer browser versions.

The release candidate and beta releases are available on GitHub. The production release is expected in November or early December. With Angular 11, stricter types would be added for DatePipe and number pipes, in order to catch misuses, such as passing an Observable or an array, at compile time. 

Other improvements proposed for Angular 11 include:

  • For the Angular compiler, keySpan would be added to the Variable node.
  • For the compiler CLI, a getResourceDependencies method is being added to the Ngcompiler compiler class that allows compiler integrations to access resource dependencies of files within the compilation. This will be used within the CLI’s webpack plug-in to optimize the dependency discovery process.
  • Support for “go to definition” functionality is being added to the Ivy Language Service.
  • The router in Angular 11 would change the default value of relativeLinkResolution from “legacy” to “corrected.” The migration updates RouterModule configurations that use the default value to now specifically use “legacy” to prevent breakages during updating.
  • In a fix to the core, a Trusted Types policy is being introduced in the development mode. It allows arbitrary unsafe conversions to Trusted Types to support development features. Also, a module is being added to create a Trusted Types policy for use internally by Angular.
  • New initialNavigation options are being added to legacy functionality.
  • For code refactoring in the router, the type of parameter in navigateByUrl and createUrlTree is being adjusted to be more accurate.
  • To improve router performance, ngDevMode can be used to tree-shake error messages.
  • For service-worker, an UnrecoverableStateError notification is being added, fixing an issue in which a broken state would arise where only parts of an application would load properly. This situation has arisen when the browser has evicted eagerly cached assets from the cache that cannot be found on the server anymore.
  • Support is removed for the Microsoft IE 9 and IE 10 browsers as is IE mobile support.
  • ISO week-numbering year formats support is being added to formatDate.
  • For the compiler-cli, interfaces are being defined that can be used for TemplateTypeChecker. Performance improvements have been made to compiler-cli, also.
  • For the core, a migration is being added that finds all imports and calls to the deprecated async function @angular/core/testing and replaces them with waitforasync.
  • null is now included in the types of .parent.
  • A multitude of bug fixes are planned, including an improvement to typing of common pipes and another fix to ensure TestBed is not instantiated before the override provder.
  • TypeScript 3.9 support has been removed from the compiler. An upgrade to TypeScript 4.0 is advised.

A roadmap published for Angular, listing features either in development or eyed for the future, cites capabilities including native trusted types and strict typing for forms. The Angular 10.1 point release, with compiler and router improvements, was released on September 8. Angular 10.0, with tool and ecosystem capabilities, arrived on June 24.

Copyright © 2020 IDG Communications, Inc.

Leave a Reply

Your email address will not be published. Required fields are marked *