@babel/plugin-transform-parameters
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
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
function test(x = "hello", { a, b }, ...args) {
console.log(x, a, b, args);
}
Salida
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
- Yarn
- pnpm
- Bun
npm install --save-dev @babel/plugin-transform-parameters
yarn add --dev @babel/plugin-transform-parameters
pnpm add --save-dev @babel/plugin-transform-parameters
bun add --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)
{
"plugins": ["@babel/plugin-transform-parameters"]
}
Mediante la CLI
babel --plugins @babel/plugin-transform-parameters script.js
Mediante la API de Node
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.
Considera migrar a la suposición de nivel superior ignoreFunctionLength.
{
"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.
// Spec behavior
function bar1(arg1 = 1) {}
bar1.length; // 0
// ignoreFunctionLength: true
function bar1(arg1 = 1) {}
bar1.length; // 1
Puedes leer más sobre cómo configurar opciones de plugins aquí