2 votes

Variable ombrée typographique

J'utilise TSLint dans un projet TypeScript et il se plaint de la variable i dans le code suivant :

    for (let i = 0; i < body.children.length; i++)
    {
        body.children[i].classList.remove('active');
    }

Le message est 'Shadowed variable: 'i' (no-shadowed-variable)'

Y a-t-il un problème avec cette boucle et quelle serait la manière correcte de faire une boucle for dans TS ?

12voto

Oblosys Points 5035

L'ombrage consiste à déclarer un identificateur qui a déjà été déclaré dans une portée externe. Puisqu'il s'agit d'une erreur de linter, ce n'est pas incorrect en soi, mais cela peut prêter à confusion, et faire en sorte que l'identificateur externe de l'identificateur ne soit pas déclaré. i non disponible à l'intérieur de la boucle (où elle est cachée par la variable de la boucle).

Vous pouvez renommer l'un ou l'autre des i mais si vous ajoutez la règle "prefer-for-of": true à votre tslint.json TSLint proposera une solution élégante dans ce cas :

for (const child of body.children) {
    child.classList.remove('active');
}

(fourni child n'a pas déjà été déclaré :-)

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