Sur cette page

Déclaration de variable à portée de bloc

Cette catégorie d'avertissement est orthographiée « [block-scope-var-declaration] » par qmllint.

Une variable a été déclarée avec « var » à l’intérieur d’un bloc

Que s'est-il passé ?

Une variable JavaScript a été déclarée avec « var » à l'intérieur d'une portée de bloc, par exemple dans le corps d'une boucle « while ». Bien qu'il puisse sembler que la variable ne soit utilisable qu'à l'intérieur de cette portée, elle est en réalité accessible en dehors de celle-ci, car elle est « hoistée » vers la portée de la fonction la plus interne ou de la liaison QML.

Pourquoi est-ce problématique ?

Il peut être difficile de suivre la portée d'une telle variable, et celle-ci risque de masquer accidentellement d'autres variables.

Exemple

import QtQuick

Item {
    id: root
    property int count: 0
    function countItems() {
        let sum = 0
        {
            var count = root.children.length
            sum += count
        }
        // ... more additions to sum
        count = sum // modifies the function local variable, not root.count
    }
}

Pour corriger cet avertissement, utilisez plutôt `let` ou `const`, ou déclarez la variable directement dans la portée de la fonction.

import QtQuick

Item {
    id: root
    property int count: 0
    function countItems() {
        let sum = 0
        {
            let count = root.children.length
            sum += count
        }
        // ... more additions to sum
        count = sum // modifies the function local variable, not root.count
    }
}

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.