TypeScript 7.0 Beta: il nuovo compilatore in Go è circa 10 volte più veloce
#tech
spcnet.it/typescript-7-0-beta-…
@informatica
TypeScript 7.0 Beta: il nuovo compilatore in Go è circa 10 volte più veloce
Il team di TypeScript ha rilasciato la beta ufficiale di TypeScript 7.0, e non si tratta di un aggiornamento incrementale: il compilatore è stato riscritto in Go, con miglioramenti di performance che in molti scenari superano un fattore 10x. Dopo quasi un anno di anteprime tecniche sotto il nome TypeScript Native Preview, Microsoft porta la versione nativa del compilatore a un pubblico molto più ampio e la raccomanda per uso quotidiano, pur restando formalmente in beta.Perché riscrivere il compilatore in Go
Il compilatore di TypeScript era storicamente scritto nello stesso linguaggio che compilava. Questa scelta, elegante dal punto di vista del bootstrapping, ha sempre comportato un costo: su codebase di grandi dimensioni iltscpuò impiegare decine di secondi (o minuti) per il type-checking e il watch mode si appesantisce rapidamente all’aumentare dei file.La riscrittura in Go non è un rewrite da zero: il team parla esplicitamente di un port metodico, mantenendo parità strutturale con la logica di type-checking di TypeScript 6.0. Questo approccio riduce il rischio di regressioni semantiche: la stessa base di casi di test, le stesse regole, ma con le velocità permesse da codice nativo e dal parallelismo reale a memoria condivisa.
Il risultato, secondo Microsoft, è che TypeScript 7.0 è circa 10 volte più veloce di TypeScript 6.0. Team come Bloomberg, Figma, Google, Slack e Vercel hanno riportato numeri comparabili durante la beta privata, con riduzioni drastiche dei tempi di build in CI.
Come provarlo oggi
L’installazione avviene come package separato per non rompere le pipeline esistenti. Basta un singolo comando:npm install -D @typescript/native-preview@beta npx tsgo --version # Version 7.0.0-beta
Durante la fase beta, l’eseguibile si chiamatsgoal posto ditsc. Per Visual Studio Code è disponibile l’estensione “TypeScript Native Preview”, che affianca il language service classico permettendo di confrontare i tempi di risposta in tempo reale.Parallelismo configurabile
Una delle novità più sottili, ma con maggiore impatto pratico, è il parallelismo integrato nel compilatore:
--checkers N: numero di worker dedicati al type-checking (default 4). I worker mantengono viste indipendenti per evitare ricalcoli ridondanti, ma i risultati restano deterministici.--builders N: abilita la compilazione parallela di più progetti referenziati (project references). Ha un effetto moltiplicativo quando combinato con--checkers, ed è particolarmente efficace nei monorepo.--singleThreaded: forza l’esecuzione sequenziale per debugging o ambienti con memoria limitata (container CI con poca RAM, ad esempio).Alzare
--checkersaumenta la velocità ma anche il consumo di memoria: su agenti CI piccoli conviene fare qualche prova empirica prima di spingerlo oltre 8.Breaking changes: la pulizia annunciata
TypeScript 7.0 è anche l’occasione per rimuovere anni di retrocompatibilità. Chi mantiene progetti legacy dovrà prestare attenzione, perché molte opzioni di configurazione sono semplicemente scomparse:
target: es5non è più supportato.downlevelIteration,moduleResolution: node/node10/classic, e i moduliamd,umd,systemjs,nonesono stati rimossi.baseUrlè stato eliminato: usarepathsrelativo alla root del progetto.esModuleInterop,allowSyntheticDefaultImportsealwaysStrictnon possono più essere disattivati.Cambiano anche diversi default:
strict: true,module: esnext,targetpari all’ultima versione ECMAScript stabile prima diesnext,noUncheckedSideEffectImports: true, e soprattuttotypes: []. Quest’ultimo è il cambiamento che più spesso romperà le build: prima@types/*venivano inclusi automaticamente, ora vanno dichiarati esplicitamente:{ "compilerOptions": { "types": ["node", "jest"] } }
Sul fronte del supporto a JavaScript con JSDoc, la pulizia è ancora più netta: i valori non possono più sostituire i tipi (usaretypeof valore), la sintassi Closure-stylefunction(string): voidè rimossa, così come@enume l’operatore postfisso!.Convivenza con TypeScript 6.0
Per chi non può migrare subito tutte le pipeline, è possibile installare entrambe le versioni affiancate:npm install -D typescript@npm:@typescript/typescript6
Cosìtypescriptcontinua a puntare a 6.0, mentretsgo(otsc7dopo il rilascio finale) resta disponibile come entry point separato. È lo scenario consigliato per confrontare gradualmente i due compilatori su progetti reali prima di fare il cutover.Roadmap e cosa aspettarsi
La beta è datata 21 aprile 2026; il rilascio stabile è previsto entro due mesi, con una release candidate alcune settimane prima. Nel frattempo arriveranno un--watchpiù efficiente, la parità di declaration file emit per JavaScript, miglioramenti all’editor (ricerca dei riferimenti ai file, comandi import/export più granulari) e una API programmatica stabile, attesa per TypeScript 7.1 o successiva.Vale la pena migrare subito?
Per team che lavorano su codebase grandi e soffrono di type-check lenti, la risposta è “quasi sicuramente sì, almeno in parallelo”. Microsoft stessa dichiara il compilatore “altamente stabile e altamente compatibile” sulla base di test su codebase da milioni di righe. La strategia più prudente è: installare@typescript/native-previewcome dev dependency aggiuntiva, introdurlo come job di CI opzionale accanto al tsc esistente, misurare i tempi reali e segnalare eventuali incompatibilità sul repository microsoft/typescript-go.Le incompatibilità che emergeranno non saranno di natura logica ma di configurazione: soprattutto il nuovo default
types: []e la rimozione dibaseUrl. Chi si è tenuto aggiornato con le versioni recenti dovrebbe cavarsela con poche modifiche altsconfig.json.Fonte: Announcing TypeScript 7.0 Beta di Daniel Rosenwasser sul blog ufficiale TypeScript (Microsoft DevBlogs).
Announcing TypeScript 7.0 Beta - TypeScript
Today we are absolutely thrilled to announce the release of TypeScript 7.0 Beta! If you haven’t been following TypeScript 7.0’s development, this release is significant in that it is built on a completely new foundation.Daniel Rosenwasser (TypeScript)
thisisbutaname likes this.
reshared this
The Pirate Post, The Privacy Post, Cybersecurity & cyberwarfare e Poliversity - Università ricerca e giornalismo reshared this.
🍃 Vertenote 🎵
in reply to Free Software Foundation Europe • • •Or at least redirect you to another Romanian speaker
@MarCandea
#Românește #LimbaRomână