Node.JS include ora il supporto per TypeScript, anche se per ora si tratta di una feature in fase sperimentale che dovrà subire ulteriori implementazioni. Come ammesso nelle scorse ore da Marco Ippolito, Technical Steering Committee & Releaser del noto runtime JavaScript, l'inclusione di questa novità era diventata ormai necessaria date le continue richieste da parte degli utilizzatori.
Abilitare il supporto a TypeScript in Node.JS
A conferma della nuova funzionalità vi è una pull request dello stesso Ippolito a commento della quale si legge su GitHub:
Node.js will transpile TypeScript source code into JavaScript source code.
During the transpilation process, no type checking is performed, and types are discarded.
È possibile eseguire file TypeScript impostando la flag sperimentale:
--experimental-strip-types
Per quanto riguarda il type stripping, cioè la rimozione delle informazioni relative ai tipi dato dal codice durante il processo di transpilazione, esso determina la trasformazione dell'input in un modulo. In pratica dato un codice come il seguente:
const foo: string = "foo";
si avrà un risultato come questo:
const foo = "foo";
Da notare che con il runtime si potrebbe avere anche la trasformazione di alcune feature che sono proprie del solo TypeScript in JavaScript. È il caso degli enum per il semplice fatto che in JavaScript non sono disponibili.
I limiti del supporto a TypeScript
Trattandosi di una sperimentazione è logico attendersi che il supporto per TypeScript non sia completo. In effetti, oltre agli enum non si potranno utilizzare i namespace e lo stripping avrà effetto esclusivamente sui tipi di dato. Inoltre tutte le impostazioni presenti nel file di configurazione tsconfig.json
verranno ignorate e non influenzeranno il comportamento di TypeScript.
Da segnalare inoltre che non verranno create source map utilizzabili per le procedure di debugging su codice JavaScript minificato, e non sono supportati i file TypeScript nella directory node_modules
. Le ragioni di questo comportamento sono più pratiche che tecniche in quanto il team di Node.JS desidera semplicemente scoraggiare la realizzazione di package scritti in TypeScript.