Published on Wed Feb 19 2020 09:20:00 GMT+0000 (Coordinated Universal Time) by Valerio Como
Angular 9
What’s new in Angular 9
Want an AI-generated TL;DR? Open this page in Google Chrome to try the built-in AI summarization feature.
Are you a coding nerd? Check out this blog post;
Angular 9 è tra noi. E Ne hanno parlato tutti. John Papa, schiere di Microsoft MVP e di Google Developer Expert. Tutti. Davvero tutti.
La lunga attesa e le molteplici RC che si sono susseguite hanno alimentato l’hype. La precedente versione di Angular, la versione 8 per intenderci, è stata pubblicata a metà 2019 e, come avevo scritto in questo articolo, preannunciava alcune interessanti novità che sono state rilasciate in questo ultima versione. Vediamo quali funzionalità sono state sviluppate in questi mesi dal team di sviluppo di Angular.
New Features
Ivy
Ivy diventa il view engine di default di Angular. Lanciato con la versione 8 come feature sperimentale, rende opzionale il suo predecessore View Engine. Anche se Ivy è la prima scelta, sarà possibile continuare ad utilizzare View Engine.
Ivy è la più grossa novità di Angular 9. Meriterebbe un articolo a parte, ma provo ad elencare alcuni dei cambiamenti e migliorie che promette di portare con se:
- bundle di dimensioni minori
- testing migliorato
- nuovi strumenti di debugging
- build più rapide
- AOT by default
- messaggi di errore migliorati
Ulteriori dettagli a questo link.
Dependency Injection
Novità anche sul fronte Dependency Injection e providing dei servizi. La proprietà providedIn del decoratore Injectable supporta due nuove opzioni:
- platform
- any
Seguirà un articolo di approfondimento. (promesso!)
Test delle componenti migliorata
Per migliorare e irrobustire i test delle componenti, Angular porta con se component harnesses. Esso è una classe che consente al developer di scrivere robusti test per le componenti. La classe offre una API attraverso la quale è possibile interagire con il componente come se l’interazione avvenisse con un utente del mondo reale. Il concetto alla base è legato la pattern PageObject. Per ulteriori informazioni, leggi questo link.
Dipendenze
Angular necessita di Typescript 3.6. Il framework è compatibile anche con Typescript 3.7, il quale porta con se una serie di operatori interessanti quali optional chaining, nullish coalescing e tante altre piccole chicche che accrescono la potenza espressiva del linguaggio.
La dipendenza a RxJS è stata aggiornata alla versione 6.5.
Miscellaneous
Ulteriori altre migliorie sono state apportate all’ecosistema:
- migliorata l’estensione per Visual Studio Code
- componenti wrapper per Youtube e Google Maps
Breaking Changes
Typescript
Typescript 3.4 e 3.5 non sono più supportati. La versione minima supportata è la 3.6.
Form
Il selettore
Classi deprecate rimosse
Le seguenti classi deprecate sono state rimosse:
- Renderer (usa Renderer2 al suo posto)
- RenderComponentType (usa RendererType2 al suo posto)
- RootRenderer (usa RendererFactory2 al suo posto)
Bazel
protractor_web_test_suite è stato spostato dal package @angular/bazel al package @bazel/protractor.
What else?
Per ulteriori informazioni su funzionalità e breaking changes vi invito a consultare il changelog del repository ufficiale e il post del blog ufficiale di Angular.
Written by Valerio Como
← Back to blog