Aller au contenu principal

@babel/plugin-transform-parameters

Traduction Bêta Non Officielle

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 →

info

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

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

Sortie

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);
}

Installation

npm install --save-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é)

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

Via CLI

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

Via l'API Node

JavaScript
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.

attention

Envisagez de migrer vers l'hypothèse de haut niveau ignoreFunctionLength.

babel.config.json
{
"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.

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

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

Vous pouvez en savoir plus sur la configuration des options de plugin ici