Javascript 和 ESLint 中的全局变量

问题描述 投票:0回答:2

我有多个 javascript 文件,我在一个文件中定义了一些全局变量,该变量先于其他文件加载。 因此,所有在第一个文件之后加载的文件都可以访问全局变量。 然而,ESLint 将全局变量显示为“未定义”。我不想更改 ESLint 的规则,我想找到一种优雅的方式来摆脱这些错误消息。 有什么线索吗? 谢谢

javascript variables global eslint
2个回答
180
投票

我不认为针对每个文件修改 ESLint 规则是个好主意。

您应该在

globals
.eslintrc
中定义
package.json

对于.eslintrc:

"globals": {
    "angular": true
}

对于

package.json

"eslintConfig": {
    "globals": {
        "angular": true
    }
}

检查https://eslint.org/docs/user-guide/configuring/language-options#specifying-globals


145
投票

您可以为每个文件或在您的配置中添加全局变量。 如果您不想更改配置,则必须在每个文件中添加使用的全局变量。

来自 Specifying globals ESLint 文档部分:

要在 JavaScript 文件中使用注释指定全局变量,请使用以下格式:

/* global var1, var2 */

这定义了两个全局变量,

var1
var2
。如果你想有选择地指定这些全局变量可以被写入(而不是只被读取),那么你可以为每个变量设置一个带有“可写”标志的:

/* global var1:writable, var2:writable */

旧版本的 ESLint 使用

var1:false
来表示
var1
应该是只读的。

© www.soinside.com 2019 - 2024. All rights reserved.