Typescript- Introduzione

Typescript è un superset di Javascript, ovvero un linguaggio di programmazione che estende javascript “tradizionale” aggiungendone nuove funzionalità e caratteristiche.

Typescript consente di aggiungere a Javascript tipi, classi, interfacce e moduli consentendo di sviluppare applicazioni scalabili e con maggiore facilità nel mantenimento/riuso del codice. Potrebbe essere riassunto come un compilatore (scritto anch’esso in Typescript) sviluppato da Microsoft e reso disponibile alla community open-source.

Numerosi framework javascript hanno deciso di adottare typescript per lo sviluppo nativo delle applicazioni. Basti pensare ad esempio ad Angular ( a partire dalla versione 2) e il framework Ionic.

Compilando” il codice Typescript è possibile ottenere l’equivalente javascript (old-version) permettendone l’utilizzo su qualsiasi browser, dispositivo o sistema operativo. Questo è il link del sito ufficiale dal quale è possibile scaricare il compilatore.

La domanda che mi viene spesso posta è:

Quando utilizzare Typescript e quando Javascript?

Forse sarò di parte, ma io userei sempre Typescript! 🙂

Typescript è consigliato quando:

  • è preferibile il type-control in fase di compilazione: utilizzando Javascript è possibile effettuare controlli sui tipo durante il runtime della nostra applicazione, ma perchè farlo quando il compilatore può effettuare per noi il check ?
  • lavoriamo con framework di terze parti: supponendo di dover utilizzare framework che non conosciamo in maniera approfondita, ma che lavorano con la definizione dei tipi, possiamo utilizzare l’intellisense nell’utilizzo di interfaccee e classi.
  • sviluppiamo applicazioni di medie/grandi dimensioni e multi-sviluppatore: l’utilizzo delle regole di Typescript consente di semplificare l’interoperabilità nel codice, e ovviamente il riuso.

JavaScript è consigliato quando:

  • abbiamo poco tempo per organizzare il codice: Typescript necessita una fase di startup (come per i linguaggi di programmazione tradizionali)) per l’organizzazione del codice. In tutti i casi è sempre consigliabile dedicare un pò di tempo nella fase di definizione del progetto
  • dobbiamo realizzare piccoli progetti: non è molto conveniente utilizzare Typescript nel caso di progetti di modeste dimensioni (introdurrebbe un’ulteriore step nella fase di sviluppo)
  • abbiamo già impostato workflow complessi per i test: in questo caso la migrazione di un progetto a Typescript potrebbe rallentare i flussi per i check (oltre che ad aumentarne la complessità)
  • dobbiamo sviluppare librerie personalizzate:  Typescript fa uso di codice pacchettizzato (scaricabile da npm). L’utilizzo di librerie di terze parti può vincolare scelte future, ad esempio nel caso in cui i pacchetti non siano mantenuti nel tempo. Tipicamente, se la scelta ricade su librerie note, non si dovrebbe incorrere in rischi di abbandono dello sviluppo.
  • stiamo utilizzando un framework che non è supportato: ci sono framework che non supportano la tipizzazione dei dati, quindi non l’utilizzo di Typescript non ci porterebbe a risultati evidenti.

L’utilizzo di Visual Studio Code con Typescript consente di migliorare notevolmente le fasi di sviluppo di applicazioni, evitando errori legati tipicamente ai valori e formati differenti.

Javascript e refactoring

Mi è capitato di mettere mano a codice javascript scritto qualche anno fa: mi sono accorto che l’utilizzo di Typescript ha cambiato profondamente il mio modo di programmare. Nel corso degli anni mi sono ricreduto sull’utilizzo di javascript che si è dimostrato affidabile e universale, ma sicuramente (almeno per me) inizialmente ha comportato non pochi problemi. L’introduzione di Typescript mi ha consentito di scrivere codice javascript imponendomi delle regole: l’adozione di classi, metodi e di un metodo di programmazione più rigoroso mi ha consentito di ottenere senza dubbio numerosi benefici.

Continua a leggere Javascript e refactoring