@babel/plugin-transform-parameters
Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →
Questo plugin è incluso in @babel/preset-env
Questo plugin trasforma i parametri ES2015 in ES5 e include:
-
Parametri destrutturati
-
Parametri di default
-
Parametri rest
Esempi
In
function test(x = "hello", { a, b }, ...args) {
console.log(x, a, b, args);
}
Out
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);
}
Installazione
- 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
Avvertenze
I parametri di default vengono desugarizzati in dichiarazioni let per mantenere la corretta semantica. Se questa funzionalità non è supportata nel tuo ambiente, avrai bisogno del plugin @babel/plugin-transform-block-scoping.
Utilizzo
Con un file di configurazione (Consigliato)
{
"plugins": ["@babel/plugin-transform-parameters"]
}
Tramite CLI
babel --plugins @babel/plugin-transform-parameters script.js
Tramite Node API
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-parameters"],
});
Opzioni
loose
boolean, predefinito false.
In modalità loose, i parametri con valori predefiniti verranno conteggiati nell'arità della funzione. Questo comportamento non è conforme alle specifiche, dove tali parametri non contribuiscono all'arità della funzione.
Considera di migrare all'assunzione di alto livello ignoreFunctionLength.
{
"assumptions": {
"ignoreFunctionLength": true
}
}
Sotto l'assunzione ignoreFunctionLength, Babel genererà una soluzione più performante poiché i motori JavaScript ottimizzeranno completamente le funzioni che non referenziano arguments. Esegui il tuo benchmarking per determinare se questa opzione è adatta alla tua applicazione.
// Spec behavior
function bar1(arg1 = 1) {}
bar1.length; // 0
// ignoreFunctionLength: true
function bar1(arg1 = 1) {}
bar1.length; // 1
Maggiori informazioni sulla configurazione delle opzioni del plugin sono disponibili qui