Saltar al contenido principal

7.20.0 Publicada: Objetivo Deno y TypeScript 4.9

· 4 min de lectura
Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

¡Acabamos de publicar Babel 7.20.0!

Esta versión incluye soporte para TypeScript 4.9, y soporte en el parser para las propuestas en Etapa 2 Import Reflection y Explicit Resource Management. Además, ahora puedes usar Deno como uno de tus objetivos de compilación.

En las últimas versiones, hemos realizado mejoras graduales en el seguimiento de ubicación de código de @babel/generator, lo que ha llevado a una mayor calidad en los mapas de origen y un mejor posicionamiento de los comentarios en el resultado generado.

También estamos lanzando la versión 9.0.0 de babel-loader, el loader de Babel para Webpack.

Puedes leer el changelog completo en GitHub.

Si tú o tu empresa quieren apoyar a Babel y la evolución de JavaScript, pero no están seguros de cómo, pueden donarnos en nuestro Open Collective y, aún mejor, trabajar directamente con nosotros en la implementación de nuevas propuestas de ECMAScript! Como proyecto impulsado por voluntarios, dependemos del apoyo de la comunidad para financiar nuestros esfuerzos en dar soporte a la amplia variedad de usuarios de JavaScript. ¡Contáctanos en team@babeljs.io si quieres conversar más!

Destacados

TypeScript 4.9 (#14211)

TypeScript 4.9 introduce un nuevo operador de palabra clave, satisfies, que te permite afirmar que una expresión tiene un tipo específico sin convertir explícitamente esa expresión:

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

Puedes leer más sobre esto en la publicación de lanzamiento de TypeScript 4.9 😉.

Babel ahora puede analizar y eliminar estas anotaciones al usar @babel/plugin-transform-typescript o @babel/preset-typescript, permitiéndote comenzar a usar la nueva versión de TypeScript.

Objetivo de compilación Deno (#14944)

Al compilar para Deno, puedes configurar @babel/preset-env para que solo compile las características no admitidas por tu versión de Deno. Aunque Deno generalmente incluye nuevas características de ECMAScript lo antes posible, podrías necesitar dar soporte a versiones anteriores del motor.

Puedes activarlo usando la opción targets:

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

babel-loader 9.0.0

Esta nueva versión mayor de babel-loader elimina soporte para Webpack < 5, Babel < 7.12 y Node.js < 14.15 LTS.

Las opciones del loader ya no pueden especificarse mediante parámetros de consulta: en lugar de especificar opciones en línea (por ejemplo, loader: "babel-loader?presets=@babel/preset-env"), deberás usar el objeto options:

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

También puedes usar un archivo de configuración de Babel dedicado, como babel.config.json.

Si no estás usando parámetros de consulta para especificar opciones de Babel, y si estás usando una versión moderna de Webpack, Babel y Node.js, deberías poder actualizar sin realizar cambios en tus configuraciones de Webpack o Babel.