È disponibile TypeScript 6.0, l'ultima versione con il compilatore JavaScript

La Microsoft ha rilasciato TypeScript 6.0, un linguaggio per lo sviluppo di applicazioni web che espande le capacità di JavaScript, insieme a strumenti correlati. Il codice del compilatore, che trasforma il codice TypeScript in JavaScript, è distribuito sotto licenza Apache 2.0, e lo sviluppo avviene in un repository pubblico tramite il servizio GitHub. Le specifiche del linguaggio sono aperte e pubblicate nell'ambito dell'Open Web Foundation Specification Agreement.

Il linguaggio TypeScript estende le capacità di JavaScript, rimanendo completamente retrocompatibile, semplificando così la migrazione delle applicazioni esistenti a TypeScript. L'applicazione finale scritta in TypeScript viene compilata in JavaScript standard, che può essere eseguito in qualsiasi moderno browser web o utilizzato con le piattaforme Node.js, Bun e Deno. È possibile utilizzare librerie JavaScript esistenti nei programmi scritti in TypeScript. Rispetto a JavaScript, TypeScript si distingue per la possibilità di dichiarare esplicitamente i tipi e supporta l'uso di classi complete. La tipizzazione statica aiuta a evitare molti errori durante lo sviluppo, consente di applicare tecniche di ottimizzazione supplementari, semplifica il debug e rende il codice più leggibile e facile da modificare e mantenere.

Il ramo TypeScript 6.0 è contrassegnato come l'ultimo fornito con un compilatore in TypeScript, che viene trasformato in JavaScript. Nel ramo TypeScript 7.0, il progetto passerà a un nuovo compilatore typescript-go (tsgo), sviluppato a partire dal 2024 in linguaggio Go. Il nuovo compilatore aumenterà notevolmente la velocità di compilazione, ridurrà l'uso della memoria e diminuirà i tempi di avvio degli editor di codice, risolvendo i problemi attualmente osservati con la scalabilità in progetti molto grandi. Sarà inoltre fornito un insieme compatto di strumenti da riga di comando per compilare rapidamente il codice per verificarne il funzionamento.

Il ramo TypeScript 6.x continua a utilizzare il vecchio compilatore, ma include modifiche specifiche per preparare la migrazione alla nuova implementazione. Il lancio di TypeScript 6.0 è posizionato come un anello di congiunzione tra i rami TypeScript 5.9 e 7.0 e contiene modifiche principalmente finalizzate a semplificare la futura transizione al ramo TypeScript 7.0. È disponibile per il testing un rilascio preliminare di TypeScript 7.0, distribuito sotto forma di estensione per VSCode e pacchetto NPM. Dopo il rilascio di TypeScript 7.0, i rami 6.x e 7.x coesisteranno e saranno mantenuti parallelamente fino a quando il ramo TypeScript 7.x non raggiungerà uno stato maturo, pronto a sostituire completamente il vecchio toolset.

Tra le modifiche in TypeScript 6.0:

  • È stata implementata la possibilità di utilizzare prefissi «#/» in stile Node.js per importare alias di moduli definiti all'interno del pacchetto, invece di specificare percorsi relativi. Ad esempio, ‘import * as utils from «#root/utils.js»‘ invece di ‘import * as utils from «../../utils.js».
  • È stata aggiunta l'opzione «—stableTypeOrdering» per abilitare l'algoritmo di ordinamento deterministico dei tipi utilizzato nella branch TypeScript 7 all'interno del compilatore, garantendo lo stesso ordine di definizione dei tipi in qualsiasi ambiente. Si raccomanda di utilizzare questa modalità solo per diagnosticare potenziali problemi prima di passare alla branch TypeScript 7, poiché l'attivazione in TypeScript 6.0 potrebbe rallentare il compilatore del 25%.
  • Sono stati implementati i tipi integrati per l'API Temporal, che offre metodi alternativi per lavorare con date e orari, consentendo di manipolare le date tenendo conto o meno dei fusi orari, convertire il tempo, formattare l'output e eseguire operazioni aritmetiche sul tempo.
  • Sono stati aggiunti i tipi per i metodi upsert getOrInsert e getOrInsertComputed negli oggetti Map e WeakMap, che restituiscono il valore già presente nella collezione associato alla chiave specificata o creano una nuova registrazione se la chiave non è stata trovata.
  • È stato aggiunto il supporto per la funzione RegExp.escape, che esegue l'escape dei caratteri speciali nelle stringhe per un utilizzo sicuro come modello all'interno delle espressioni regolari definite tramite il costruttore RegExp().
  • Le impostazioni predefinite sono state modificate:
    • Il parametro rootDir ora punta alla directory corrente «.», in cui si trova il file di configurazione tsconfig.json, e non alla directory predefinita del codice sorgente.
    • Il campo «types» in tsconfig.json è ora definito come «[]» invece di «[«*»]», cioè TypeScript ora non include per impostazione predefinita tutti i pacchetti da «node_modules/@types» e richiede l'indicazione esplicita dei pacchetti globali (ad esempio, [«node», «jest»]). Questa modifica riduce il tempo di compilazione del 20-50%.
    • Il valore target ora include la versione attuale di ECMAScript (es2025). La versione es5 (ECMAScript 5) è dichiarata obsoleta nel campo target, mentre la versione minima dichiarata è es6 (ECMAScript 2015).
    • Per impostazione predefinita, è attivata la modalità strict per un controllo rigoroso dei tipi.
    • Il parametro module per impostazione predefinita è impostato su «esnext», che include il supporto per i moduli JavaScript (ESM) con le direttive import e export, invece del formato obsoleto CommonJS.
  • Per migliorare le prestazioni del compilatore, sono state dichiarate obsolette:
    • L'opzione «—baseUrl».
    • L'uso della parola chiave module per definire gli spazi dei nomi dei moduli («module Foo { … }» invece di «namespace Foo { … }»).
    • L'opzione «—outFile» (utilizzare imballatori esterni come esbuild, Rollup e Webpack);
    • Modalità «—moduleResolution: classic» (si consiglia di utilizzare nodenext o bundler).

Fonte: opennet.ru

Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS | ProHoster