Angular 9 — Características e atualização de projetos

A versão 9 do Angular já está disponível e com ela, várias atualizações e correções de melhorias e performances em todo ecossistema Angular.
A mais significativa é sem dúvida o Ivy, nome do novo compilador e renderizador do framework.
Ivy
Embora já disponível na versão anterior, a construção dos projetos agora tem Ivy como compilador padrão. Entre os recursos destacam-se:
- Pacotes menores;
- Execução de testes mais rápidos;
- Melhorias na checagem de tipos de erros, classes css, erros de contrução e internacionalização;
- AOT habilitado por padrão.
De acordo com o anúncio oficial, o compilador Ivy foi projetado para gerar menos código na construção dos componentes.
O impacto dessa característica é mais significativo no tamanho da aplicação em pequenas e grandes aplicações.
Verificação de tipos
O compilador pode verificar os tipos no momento da codificação, o que ajuda a detectar erros no momento de desenvolvimento (IDE).
São dois atributos:
fullTemplateTypeCheck — Quando ativado, o complicador verifica no template do componente (ngIf, ngFor, ng-template …)
strictTemplates — Quando ativado, o compilador consegue em tempo de desenvolvimento, por exemplo, verificar se uma entrada corresponde ao tipo determinado na classe.
Mais detalhes em: https://angular.io/guide/template-typecheck
AOT padrão
Outra ponto interessante da nova versão é a performance. As melhorias com AOT habilitado por default, até mesmo com `ng serve`, trouxe uma redução significativa no tamanho e velocidade. Aplicados no próprio site da documentação (angular.io) a melhoria foi próxima de 40%.
Migrando os projetos
O primeiro passo é atualizar tanto o CLI e o core para última versão do 8. No terminal informe:
ng update @angular/cli8 @angular/core8
Depois, atualizamos para o 9:
ng update @angular/cli @angular/core
Prontinho!!!
Não custa lembrar que é sempre recomendado manter os projetos nas últimas versões, sejam por questões de performance e melhorias ou por correções de segurança. Além do impacto de uma versão para outra não causar tantas break changes.
Uma observação. Para quem utiliza componentes do PrimeNG, atualizei a lib para 9.0.0-rc.4, que é compatível com a versão 9 do Angular. Tive problemas com a importações dos módulos, que trocaram de nome.

Além de alguns atributos que foram removidos ou depreciados.
Finalizando
Um site indicado é o update.agular.io, que traz em detalhes informações para orientar a atualização, inclusive com possibilidades, de mostrar o impacto da migração, com base na versão que se encontra o projeto.
Finalmente, para mais detalhes, também recomendo o site: https://v9.angular.io/guide/updating-to-version-9
Até +