Angular: riscrittura completa in TypeScript

Google riscrive AngularJS da zero con TypeScript, architettura a componenti, dependency injection, RxJS e compilazione AOT, creando un framework completamente nuovo.

Open SourceWeb Open SourceAngularTypeScriptFrontendSPAGoogle

Non un aggiornamento, un nuovo framework

Quando Google rilascia Angular (versione 2), non si tratta di un aggiornamento incrementale di AngularJS: è una riscrittura completa, incompatibile con la versione precedente, che ripensa l’architettura dalle fondamenta. Il nome perde il suffisso “JS” per segnalare la discontinuità. Le ragioni della riscrittura sono concrete: AngularJS mostra limiti strutturali — il ciclo di digest non scala con interfacce complesse, il sistema di scope e controller rende difficile il ragionamento sullo stato, e il framework non è progettato per i nuovi standard del web.

Angular sceglie TypeScript come linguaggio obbligatorio, non opzionale. La decisione è radicale per il 2016: TypeScript è ancora poco diffuso nell’ecosistema frontend. Google scommette che il type checking statico, l’autocompletamento avanzato e il refactoring sicuro giustifichino la curva di apprendimento, specialmente per applicazioni enterprise di grandi dimensioni.

Architettura a componenti

L’unità fondamentale di Angular è il componente: una classe TypeScript decorata con metadati che associa un template HTML e uno stile CSS a un comportamento specifico. Ogni componente gestisce la propria vista e i propri dati, comunicando con gli altri tramite input, output ed eventi. L’architettura elimina i concetti di scope e controller che in AngularJS generavano confusione.

La dependency injection (DI) è integrata a livello di framework: ogni servizio, repository o utilità viene dichiarato come injectable e il framework lo fornisce ai componenti che ne hanno bisogno. Il sistema DI di Angular è gerarchico — servizi diversi possono avere scope diversi, dal globale al singolo componente.

RxJS e reattività

Angular integra RxJS — una libreria per la programmazione reattiva basata su Observable — come meccanismo fondamentale per gestire operazioni asincrone: chiamate HTTP, eventi utente, aggiornamenti di stato. L’approccio reattivo sostituisce le callback e le promise con flussi di dati componibili e trasformabili.

Compilazione AOT

La compilazione Ahead-of-Time (AOT) trasforma i template Angular in codice JavaScript durante la build, invece che a runtime nel browser. Il risultato è un’applicazione che si avvia più rapidamente, con bundle più piccoli e con errori nei template intercettati durante lo sviluppo anziché in produzione. Il framework è rilasciato sotto licenza MIT.

Link: angular.io

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi