Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
SyntaxError: redeclaration of formal parameter "x"
Message
SyntaxError: Let/Const redeclaration (Edge)SyntaxError: redeclaration of formal parameter "x" (Firefox)SyntaxError: Identifier "x" has already been declared (Chrome)
Dans cet article
Type d'erreur
SyntaxErrorQuel est le problème ?
Le même nom de variable est présent comme paramètre de la fonction et dans une affectationlet au sein du corps de cette fonction et il n'est pas possible de redéclarer la même variable dans la même fonction ou dans le même bloc aveclet.
Exemples
Dans le fragment de code qui suit, la variablearg redéclare l'argument passé à la fonction.
function f(arg) { let arg = "toto";}// SyntaxError: redeclaration of formal parameter "arg"Si on souhaite changer la valeur dearg dans le corps de la fonction, c'est possible mais il ne faut pas la redéclarer. Autrement dit, on peut retirer le mot-clélet. Si on souhaite plutôt créer une nouvelle variable, mieux vaudra utiliser un autre nom afin d'éviter les conflits avec les noms des paramètres existants.
function f(arg) { arg = "toto";}function f(arg) { let truc = "toto";}Notes de compatibilité
- Avant Firefox 49, cela provoquait une exception
TypeError(bug Firefox 1275240).