Vai al contenuto principale

7.20.0 Pubblicata: target Deno e TypeScript 4.9

· Lettura di 3 min
Traduzione Beta Non Ufficiale

Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →

Abbiamo appena pubblicato Babel 7.20.0!

Questa versione include supporto per TypeScript 4.9, e supporto del parser per le proposte di Stage 2 Import Reflection e Explicit Resource Management. Inoltre, ora potete utilizzare Deno come target di compilazione.

Nelle ultime release abbiamo apportato miglioramenti graduali al tracciamento della posizione del codice in @babel/generator, portando a una maggiore qualità delle source map e un migliore posizionamento dei commenti nell'output generato.

Stiamo inoltre rilasciando la versione 9.0.0 di babel-loader, il loader Babel per Webpack.

Potete consultare l'intero changelog su GitHub.

Se tu o la tua azienda volete supportare Babel e l'evoluzione di JavaScript, ma non sapete come, potete donare sul nostro Open Collective e, ancora meglio, collaborare direttamente con noi all'implementazione di nuove proposte ECMAScript! Essendo un progetto gestito da volontari, dipendiamo dal supporto della comunità per finanziare i nostri sforzi nel supportare la vasta gamma di utenti JavaScript. Contattaci a team@babeljs.io per discutere insieme!

Novità principali

TypeScript 4.9 (#14211)

TypeScript 4.9 introduce un nuovo operatore chiave, satisfies, che permette di asserire che un'espressione abbia un tipo specifico senza effettivamente eseguire il cast di tale espressione:

let a = { x: 1, y: 2 } as const;
// ^ type is { x: 1, y: 2 }

let b = a satisfies { [key: string]: number };
// ^ type is still { x: 1, y: 2 }, and not { [key: string]: number }!

a satisfies { [key: string]: string };
// error! a does not satisfies that type

Potete approfondire questo argomento nel post di rilascio di TypeScript 4.9 😉.

Babel ora può analizzare e rimuovere queste annotazioni quando si utilizzano @babel/plugin-transform-typescript o @babel/preset-typescript, consentendovi di iniziare a usare la nuova versione di TypeScript.

Target di compilazione Deno (#14944)

Quando compilate per Deno, potete configurare @babel/preset-env per compilare solo le funzionalità non supportate dalla vostra versione di Deno. Sebbene Deno solitamente integri le nuove funzionalità ECMAScript il prima possibile, potreste aver bisogno di supportare versioni più vecchie del motore.

Potete abilitarlo tramite l'opzione targets:

JSON
{
"targets": { "deno": "1.20" },
"presets": ["@babel/preset-env"]
}

babel-loader 9.0.0

Questa nuova versione major di babel-loader elimina il supporto per Webpack < 5, Babel < 7.12 e Node.js < 14.15 LTS.

Le opzioni del loader non possono più essere specificate tramite parametri query: invece di definire le opzioni inline (ad esempio, loader: "babel-loader?presets=@babel/preset-env") dovrete utilizzare l'oggetto options:

JavaScript
{
loader: "babel-loader",
options: {
presets: ["@babel/preset-env"]
}
}

Potete anche utilizzare un file di configurazione dedicato per Babel, come babel.config.json.

Se non utilizzate parametri query per specificare le opzioni di Babel, e se state utilizzando versioni moderne di Webpack, Babel e Node.js, dovreste poter aggiornare senza modifiche alle configurazioni di Webpack o Babel.