Angular 9 has been released with improvements to the framework, Angular Material, and the CLI. This release also moves over to the Ivy compiler and runtime by default, and introduces improved ways of testing components.
The headline change to version 9 is the adoption of the Ivy compiler and runtime as the default. This should result in smaller bundle sizes, faster testing and better debugging, along with improvements to CSS class and style binding and type checking. Build times are also improved. The smaller bundle sizes are achieved by Ivy removing parts of Angular that aren’t being used via tree-shaking, and generating less code for each Angular component.
The move to Ivy adds new tools for debugging applications. When running an application in Dev Mode with the Ivy runtime, you get a new ng object for debugging that exposes a set of functions in the global namespace which are useful for debugging the current state of your application. You can also now ask Angular for access to instances of your components and directives, and manually call methods and update state.
CSS handling is another area that’s been improved. In earlier releases, if an application contained competing definitions for a style, those styles would destructively replace each other. With Ivy, the styles are merged in a predictable way.
Type checking is another area to have been improved. The Angular compiler can now check more types and can apply more strict rules. This should help developers catch bugs earlier in the development process. Angular 9 is available for download from the Angular site.