为什么在for ... of循环中收到“ no-unused-vars”警告,我该如何解决?

时间:2019-09-07 10:55:53

标签: javascript reactjs ecmascript-6 eslint

我正在使用Create React App创建的React应用程序。在每个for ... of循环中,我得到这个奇怪的'no-unused-vars'警告,指向我在for语句中实例化的变量。

ESLint告诉我我的变量未使用,但实际上已使用。

其他人也会收到类似的警告吗?是ESLint错误还是我在这里做错了什么?
这不是大问题,但很烦人。
感谢您的帮助。

   for (let track of tracks) {
        let chords = RavelFormatter.splitEntries(track.pitches)
        for (let chord of chords) {
            var n = chord.split(':')
            total += n.length
        }
    }

控制台输出

  Line 13:  'track' is defined but never used       no-unused-vars
  Line 15:  'chord' is defined but never used       no-unused-vars

4 个答案:

答案 0 :(得分:8)

请参阅this问题,此问题与eslint的特定版本有关,您可以将eslint版本恢复回v6.1.0来解决此问题。

答案 1 :(得分:4)

升级到eslint 6.8.0和babel-eslint 10.1.0。

这是babel-eslint的一个已知问题,与使用的eslint-scope版本有关。看起来它始于eslint 6.1.0。

只需将您的软件包升级到(至少):

"babel-eslint": 10.1.0,
"eslint": 6.8.0

您可以在此处查看Github问题:

答案 2 :(得分:3)

请将babel-eslint软件包升级到版本10.0.3

这很可能会修复那些在循环内使用var并错误地报告为未使用的false阳性的错误。

答案 3 :(得分:2)

我可以使用它来修复它。

let track = null;

for (track of tracks) {
    let chords = RavelFormatter.splitEntries(track.pitches)
    for (let chord of chords) {
        var n = chord.split(':')
        total += n.length
    }
}