TypeScript vs JavaScript: la Vera Differenza

TypeScript vs JavaScript

TypeScript vs JavaScript: Cosa Cambia, Cosa Genera tsc | We.Inc

Guarda TypeScript e il JavaScript in cui viene compilato fianco a fianco, scopri cosa rileva il type checker, perché i tipi spariscono a runtime e quando basta JavaScript puro.

TypeScript è JavaScript più un sistema di tipi. Scrivi normale JavaScript con annotazioni di tipo facoltative, e il compilatore tsc le verifica, poi le rimuove per produrre JavaScript puro. Browser e Node eseguono quel risultato, quindi i tipi non esistono mai a runtime. Il vantaggio è scoprire gli errori mentre scrivi, non avere codice più veloce.

Fianco a fianco

Scegli un esempio qui sotto per vedere un file TypeScript accanto al JavaScript che tsc ha scritto per lui. Nella maggior parte dei casi il risultato è il tuo codice con le annotazioni cancellate. Alcune funzionalità, come gli enum, generano codice vero, e questa differenza conta quando scegli gli strumenti.

Domande frequenti

TypeScript è un linguaggio diverso da JavaScript?

È un superset. Ogni programma TypeScript diventa JavaScript, e TypeScript aggiunge una sintassi per descrivere la forma dei valori. Impara prima JavaScript; i tipi stanno sopra di esso invece di sostituirlo.

TypeScript rende il mio sito più veloce?

No. Le annotazioni vengono rimosse prima dell'esecuzione, quindi il browser esegue lo stesso JavaScript che avresti scritto a mano. I vantaggi sono meno bug che arrivano agli utenti e refactoring più sicuri.

tsc si rifiuta di compilare se c'è un errore di tipo?

Non per impostazione predefinita. tsc segnala l'errore e scrive comunque il file .js, cosa che rende possibile una migrazione graduale. Imposta noEmitOnError se vuoi che un controllo fallito blocchi il risultato.

Node può eseguire file .ts senza una fase di build?

Le versioni recenti di Node rimuovono la sintassi di tipo cancellabile ed eseguono il file, con il type stripping attivo per impostazione predefinita da v23.6.0 e v22.18.0. Node non esegue il controllo dei tipi, e la sintassi che richiede codice generato, come gli enum, viene rifiutata.

Quando JavaScript puro è la scelta migliore?

Piccoli script, prototipi veloci e pagine con poche righe di interattività raramente ripagano la configurazione. Quando un progetto ha più file, più persone o dati che passano tra moduli, il checker inizia a far risparmiare tempo reale.

Cosa fa davvero tsc

I tipi vengono cancellati, quindi valida i dati reali

Funzionalità che non vengono semplicemente cancellate

Aggiungere TypeScript a un progetto JavaScript

Installare e creare un tsconfig

Installa il compilatore in locale, scrive un tsconfig.json iniziale ed esegue un controllo senza scrivere file.

allowJs permette ai vecchi file .js di stare accanto ai nuovi file .ts durante una migrazione; noEmit lascia la generazione del risultato al tuo bundler.

Controllare i dati che il compilatore non vede

Una guardia a runtime che restringe il tipo

La funzione verifica davvero il valore, e il tipo di ritorno dice al compilatore cosa ha dimostrato.

Annotazioni

I tipi del parametro e del valore di ritorno vengono verificati, poi cancellati. Il corpo resta intatto.

Interfaccia

Un'interfaccia non produce alcun output. Esiste solo per il checker.

Enum

Un enum normale diventa un vero oggetto con mappatura inversa, quindi è codice generato, non sintassi cancellata.

const enum

tsc inserisce i membri del const enum direttamente come numeri e lascia un commento con il nome originale.

Errore di tipo

tsc segnala: Argument of type 'string' is not assignable to parameter of type 'number'. Scrive comunque il file a meno che non sia impostato noEmitOnError.

TypeScript e il JavaScript che diventa

Scegli un esempio

Il TypeScript che scrivi

Il JavaScript generato da tsc (target es2022)

Copia TypeScript

Copia JavaScript

{n} righe in ingresso, {v} righe in uscita

Inizia gratis · Nessuna carta di credito richiesta

Correlati: Guide

Prodotto

Per chi è

Funzionalità

Risorse

Azienda

Mappa del sito