ESLint误报'globalThis'未定义:如何告知ESLint其已存在?
ESLint误报
'globalThis' is not defined的解决配置方案 遇到ESLint报错:
'globalThis' is not defined,实际运行时globalThis是存在的,仅为ESLint误报,需要调整ESLint配置让其识别globalThis。
方案1:通过env配置启用对应环境全局变量
在ESLint配置文件(如.eslintrc.js、.eslintrc.json)中,添加或修改env字段,启用支持globalThis的环境版本与运行环境:
{ "env": { "es2020": true, "browser": true, // 浏览器环境启用 "node": true // Node.js环境启用 } }
globalThis是ES2020新增的全局对象,启用es2020及以上版本的环境后,ESLint会自动识别该全局变量。
方案2:显式声明globalThis为全局变量
如果方案1不生效,可在配置文件的globals字段中直接声明globalThis为只读全局变量:
{ "globals": { "globalThis": "readonly" } }
此配置会让ESLint将globalThis视为合法的全局标识符,不再触发未定义报错。
方案3:调整解析器的ECMAScript版本
确保ESLint解析器配置中,ECMAScript版本设置为2020或更高:
{ "parserOptions": { "ecmaVersion": 2020 } }
该配置让ESLint以ES2020标准解析代码,解析器会自动识别globalThis这个ES2020新增的全局对象。
内容的提问来源于stack exchange,提问作者Daniel Kaplan
相关产品推荐
相关产品推荐

