TypeScript 6.0 è uscito la settimana scorsa e non è un rilascio minore. È un ripensamento di diverse assunzioni fondamentali radicate nel linguaggio fin dai suoi primi giorni.
Dichiarazioni isolate
La feature principale. Le dichiarazioni isolate permettono ai file TypeScript di essere controllati e generati indipendentemente, senza bisogno di processare l’intero grafo del progetto. Il risultato pratico: tool di build come esbuild e Vite possono ora eseguire lo stripping dei tipi senza un passaggio completo di compilazione TypeScript.
Per i grandi monorepo, il miglioramento di velocità può essere di un ordine di grandezza.
// Con isolatedDeclarations: true, ogni simbolo esportato
// deve avere un'annotazione di tipo esplicita
export const fetchUser = async (id: string): Promise<User> => {
return await db.users.findById(id)
}
Modalità type erasure
TypeScript 6 include una modalità ufficiale di type erasure che produce JavaScript standard con zero overhead a runtime e zero trasformazioni. Non serve più affidarsi a esbuild o swc per questo — il compilatore TypeScript stesso può ora produrre JS pulito e conforme alle specifiche.
Miglioramenti nella risoluzione dei moduli
La modalità di risoluzione dei moduli bundler, introdotta nella 5.0, è ora il default raccomandato per i nuovi progetti. Modella accuratamente come i bundler come Vite, webpack e Rollup risolvono gli import, eliminando un’intera classe di bug di configurazione.
Percorso di migrazione
La maggior parte del codice TypeScript 5.x compila sotto la 6.0 senza modifiche. Le breaking change sono limitate a casi limite riguardanti l’emissione delle dichiarazioni e alcuni utilizzi di implicit any precedentemente permessi che ora sono errori.
Esegui tsc --version e aggiorna. Non te ne pentirai.