Version 7.20.0 : Cible Deno et TypeScript 4.9
Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
Nous venons de publier Babel 7.20.0 !
Cette version inclut la prise en charge de TypeScript 4.9, ainsi que le support du parseur pour les propositions de niveau 2 Import Reflection et Explicit Resource Management. De plus, vous pouvez désormais utiliser Deno comme cible de compilation.
Dans les dernières versions, nous avons progressivement amélioré le suivi des positions de code dans @babel/generator, ce qui a permis d'obtenir des source maps de meilleure qualité et un positionnement plus précis des commentaires dans le code généré.
Nous publions également la version 9.0.0 de babel-loader, le loader Babel pour Webpack.
Vous pouvez consulter l'intégralité du journal des modifications sur GitHub.
Si vous ou votre entreprise souhaitez soutenir Babel et l'évolution de JavaScript sans savoir comment contribuer, vous pouvez nous faire un don via notre Open Collective ou, mieux encore, collaborer directement avec nous à l'implémentation de nouvelles propositions ECMAScript ! En tant que projet géré par des bénévoles, nous dépendons du soutien communautaire pour financer nos efforts visant à accompagner la diversité des utilisateurs JavaScript. Contactez-nous à team@babeljs.io pour en discuter !
Principales fonctionnalités
TypeScript 4.9 (#14211)
TypeScript 4.9 introduit un nouvel opérateur clé, satisfies, qui permet d'affirmer qu'une expression a un type donné sans pour autant effectuer de cast explicite :
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
Vous pouvez en savoir plus à ce sujet dans le billet de publication de TypeScript 4.9 😉.
Babel peut désormais analyser et supprimer ces annotations lors de l'utilisation de @babel/plugin-transform-typescript ou @babel/preset-typescript, vous permettant ainsi d'utiliser la nouvelle version de TypeScript.
Cible de compilation Deno (#14944)
Lors de la compilation pour Deno, vous pouvez configurer @babel/preset-env pour ne compiler que les fonctionnalités non prises en charge par votre version de Deno. Bien que Deno intègre généralement rapidement les nouvelles fonctionnalités ECMAScript, vous pourriez avoir besoin de supporter des versions plus anciennes du moteur.
Vous pouvez activer cette fonctionnalité via l'option targets :
{
"targets": { "deno": "1.20" },
"presets": ["@babel/preset-env"]
}
babel-loader 9.0.0
Cette nouvelle version majeure de babel-loader abandonne la prise en charge de Webpack < 5, de Babel < 7.12 et de Node.js < 14.15 LTS.
Les options du loader ne peuvent plus être spécifiées via des paramètres de requête : au lieu de spécifier les options en ligne (par exemple loader: "babel-loader?presets=@babel/preset-env"), vous devrez utiliser l'objet options :
{
loader: "babel-loader",
options: {
presets: ["@babel/preset-env"]
}
}
Vous pouvez également utiliser un fichier de configuration Babel dédié, tel que babel.config.json.
Si vous n'utilisez pas de paramètres de requête pour spécifier les options de Babel, et si vous utilisez des versions modernes de Webpack, Babel et Node.js, vous devriez pouvoir effectuer la mise à jour sans modifier vos configurations Webpack ou Babel.