@babel/plugin-transform-parameters
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 →
Ce plugin est inclus dans @babel/preset-env
Ce plugin transforme les paramètres ES2015 en ES5, ce qui inclut :
-
La déstructuration de paramètres
-
Les paramètres par défaut
-
Les paramètres rest
Exemples
Entrée
function test(x = "hello", { a, b }, ...args) {
console.log(x, a, b, args);
}
Sortie
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);
}
Installation
- 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
Mises en garde
Les paramètres par défaut sont désucrés en déclarations let pour conserver la sémantique appropriée. Si cette fonctionnalité n'est pas prise en charge dans votre environnement, vous aurez besoin du plugin @babel/plugin-transform-block-scoping.
Utilisation
Avec un fichier de configuration (Recommandé)
{
"plugins": ["@babel/plugin-transform-parameters"]
}
Via CLI
babel --plugins @babel/plugin-transform-parameters script.js
Via l'API Node
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-parameters"],
});
Options
loose
boolean, valeur par défaut : false.
En mode loose, les paramètres avec valeurs par défaut seront comptabilisés dans l'arité de la fonction. Ce comportement diffère des spécifications où ces paramètres n'ajoutent pas à l'arité fonctionnelle.
Envisagez de migrer vers l'hypothèse de haut niveau ignoreFunctionLength.
{
"assumptions": {
"ignoreFunctionLength": true
}
}
Sous l'hypothèse ignoreFunctionLength, Babel générera une solution plus performante car les moteurs JavaScript optimiseront pleinement une fonction ne référençant pas arguments. Effectuez vos propres tests de performance pour déterminer si cette option convient à votre application.
// Spec behavior
function bar1(arg1 = 1) {}
bar1.length; // 0
// ignoreFunctionLength: true
function bar1(arg1 = 1) {}
bar1.length; // 1
Vous pouvez en savoir plus sur la configuration des options de plugin ici