JavaScript per applicazioni scalabili
@MattiaManzati
Codice sconto del 10%
ItaliaJS16
Essendo JavaScript un linguaggio ad oggetti,
non dispone di ereditarietà a classi, ma bensì prototipale.
Questo rende più complicato
per chi viene da linguaggi come Java o C#
comprendere come organizzare le gerarchie
o come creare metodi e membri privati
E' uno dei pochi linguaggi che soddisfa appieno il modello
"write once, run everywhere"
La crescita di richieste di web application
e la crescente richiesta di rapidità di esecuzione dell'applicativo
porta JavaScript ad essere l'unica soluzione
per il web application developement
TypeScript estende la sintassi JavaScript
che milioni di developer già conoscono.
Quindi un file JavaScript è anche un file TypeScript valido!
TypeScript è un superset di JavaScript,
che compila verso JavaScript,
introducendo tipizzazione opzionale,
e supporto alle ultime features di JavaScript.
TypeScript permette di utilizzare alcune features ancora in fase di approvazione; traspilandole verso codice ES3/ES5.
Le annotazioni di tipo in TypeScript sono opzionali;
qualora non indicate, verrà assunto il tipo "any"
Dove possibile, la tipizzazione è inferred, ossia dedotta.
Il costo di adottare TypeScript è quindi minimo,
solitamente è sufficiente tipizzare i parametri di funzione,
TypeScript saprà dedurre da solo il resto.
Otteniamo quindi i benefici di un Type System,
quali ad esempio check della signature o type check.
Finalmente la nostra IDE ha coscienza del codice che scriviamo, e ci può aiutare!
Il Type System ci può aiutare a scovare bug nascosti!
Il Type System di TypeScript è structure-based;
il casting di una variabile verso un tipo non è necessario
il casting da un tipo a un altro è implicito;
a patto che i requisiti del tipo di destinazione siano soddisfatti!
Otteniamo inoltre i benifici di un linguaggio tipizzato:
Trova riferimenti, trova definizione e refactoring!
I programmatori Java e C# si troveranno più familiari con la programmazione ad oggetti; anche se check di accesso a membri privati viene effettuato solamente a compile time
Qualora tu non voglia, le dichiarazioni di tipo possono essere messe in un file di dichiarazione ".d.ts" e referenziate nel codice JS tramite un semplice commento.
Sull'onda di TypeScript, è nato in maniera indipendente e community based DefinitelyTyped, il repo con le tipizzazioni delle librerie JavaScript più famose
@MattiaManzati