13 votes

Erreur JS 'redeclaration' de var lorsqu'elle est en première ligne du programme?

SCRPT5039: Redéclaration de la propriété const ligne 1 caractère 1

line1: var editObj = null;

Ceci est le début du fichier et j'ai vérifié pour m'assurer que la variable n'est pas dans d'autres fichiers js appelés. Est-ce que cela signifie que je la redéclare plus tard ? (si oui, cette référence de ligne n'est pas utile) ou quel est le problème avec cela ?

1voto

boB Points 172

J'ai également rencontré cette erreur - le problème est que la ligne sur laquelle elle se déclenche est complètement fausse. Comme pour l'OP, c'était une ligne précoce dans mon script qui était signalée :

        var h_combinedView = true;

Le message d'erreur est très trompeur : "0x800a041c - Erreur d'exécution JavaScript : Redéclaration de Let/Const"

La ligne signalée n'est pas une définition const, et la valeur qui y est définie est utilisée une seule fois dans l'ensemble de mon projet et jamais plus.

Finalement, j'ai identifié le problème comme étant une définition const effectivement dupliquée.

const ve = { Normal: 'default', Search: 'search', View: 'view', Alts: 'ViewAlts', Edit: 'edit' }

(J'avais déplacé une définition utilisée à plusieurs endroits dans un fichier partagé et oublié de supprimer une copie). Le message d'erreur était donc légitime - c'était bien une définition const dupliquée - mais la ligne et l'identifiant signalés n'avaient RIEN à voir avec le problème.

Rien de tel que des messages d'erreur inexacts pour me forcer à parcourir mon code.

-)

0voto

Hypnovirus Points 502

J'ai eu la même erreur et suis tombé sur ce post. Bien que je n'aie pas eu le même problème de base que l'OP, j'ai pensé partager ma solution au cas où d'autres feraient la même erreur et arriveraient ici. J'ai reçu l'erreur dans un fichier js séparé. Après l'avoir simplifié, j'ai constaté que je pouvais générer l'erreur à partir du code suivant :

var foo = null;
var bar = null;
var localData = null;

L'erreur indiquait qu'elle venait de la première ligne. Cependant, foo n'était pas redéclaré. Le problème était que localData devait être utilisé ailleurs (pas dans mon code). Peu importe à quel point localData était déclaré plus loin dans le fichier, l'erreur était listée comme étant sur la première vraie ligne de code.

Donc, si d'autres solutions ne fonctionnent pas, essayez de renommer chaque variable dans le fichier de code pour déterminer laquelle pourrait causer le problème. Ne faites pas confiance au fait que le débogueur indique la bonne ligne.

Rencontré : application Windows Store HTML5/JS.

0voto

Post Self Points 698

D'une erreur commise par moi lors d'une fusion git, j'ai découvert que j'avais inclus le script dans mon HTML deux fois. Ainsi, lorsque le script s'est exécuté une deuxième fois, il a redéclaré la variable.

Et cela ne m'a donné l'erreur que pour le premier const, ce qui m'a dérouté, car j'ai essayé de supprimer la variable ou d'en ajouter une autre dans le fichier, il me donnait toujours une erreur pour la première ligne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X