Saltar al contenido principal

@babel/plugin-transform-parameters

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 →

información

Este plugin está incluido en @babel/preset-env

Este plugin transforma parámetros de ES2015 a ES5, lo que incluye:

  • Desestructuración de parámetros

  • Parámetros predeterminados

  • Parámetros rest

Ejemplos

Entrada

JavaScript
function test(x = "hello", { a, b }, ...args) {
console.log(x, a, b, args);
}

Salida

JavaScript
function test() {
var x =
arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "hello";
var _ref = arguments[1];
var a = _ref.a,
b = _ref.b;

for (
var _len = arguments.length,
args = Array(_len > 2 ? _len - 2 : 0),
_key = 2;
_key < _len;
_key++
) {
args[_key - 2] = arguments[_key];
}

console.log(x, a, b, args);
}

Instalación

npm install --save-dev @babel/plugin-transform-parameters

Advertencias

Los parámetros predeterminados se descomprimen en declaraciones let para mantener la semántica adecuada. Si esto no es compatible en tu entorno, necesitarás el plugin @babel/plugin-transform-block-scoping.

Uso

Mediante un archivo de configuración (Recomendado)

babel.config.json
{
"plugins": ["@babel/plugin-transform-parameters"]
}

Mediante la CLI

Shell
babel --plugins @babel/plugin-transform-parameters script.js

Mediante la API de Node

JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-parameters"],
});

Opciones

loose

boolean, valor predeterminado: false.

En modo flexible (loose), los parámetros con valores predeterminados se contarán en la aridad de la función. Esto no cumple con el comportamiento de la especificación, donde estos parámetros no contribuyen a la aridad de la función.

precaución

Considera migrar a la suposición de nivel superior ignoreFunctionLength.

babel.config.json
{
"assumptions": {
"ignoreFunctionLength": true
}
}

Bajo la suposición ignoreFunctionLength, Babel generará una solución de mayor rendimiento ya que los motores JavaScript optimizarán completamente funciones que no referencien arguments. Realiza tus propias pruebas de rendimiento para determinar si esta opción es adecuada para tu aplicación.

JavaScript
// Spec behavior
function bar1(arg1 = 1) {}
bar1.length; // 0

// ignoreFunctionLength: true
function bar1(arg1 = 1) {}
bar1.length; // 1
consejo

Puedes leer más sobre cómo configurar opciones de plugins aquí