'expect'的重新定义

Redefinition of 'expect'

我是 运行 jshint 并收到此错误:

line 6 col 5 Redefinition of 'expect'.

对于这行代码:

var expect = require('chai').expect;

这是否意味着 expect 是某处的保留关键字?我没有在我的项目的其他任何地方看到定义的关键字,当我从测试中删除它时,测试说:

expect is not defined

如何修复这个 jshint 错误?

如果您的 JSHint 配置在其 globals 数组中定义了 expect,就会发生这种情况。

删除它,因为你明确地不是依赖它作为一个预先存在的全局。

此特定错误的 JSLint documentation 表明它是在您尝试使用与内置本机对象相同的标识符声明变量时生成的。这可能会导致混淆,因为人们可能期望内置的本机对象和您自定义的对象。

简单的解决方案是:使用另一个标识符。

另一种解决方案是让 JSLint 不将 expect 视为全局标识符。您可以通过将以下内容放入 .jshintrc 文件中来做到这一点:

"globals": {
    "expect": true
}