You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

单次声明的全局变量触发ESLint no-redeclare报错的原因及解决方法

报错原因

no-redeclare 规则的默认校验逻辑包含两类场景:

  1. 同一作用域下代码内多次声明同一个变量
  2. 自定义全局变量与ESLint预定义的内置全局变量重名

你碰到的报错属于第二类:ESLint会根据你配置的env字段(例如browser、es2022、node等)自动加载对应运行环境的预定义全局变量列表,AS正好属于你已开启环境的内置全局变量范畴,因此哪怕你在代码中仅声明一次,也会被判定为和内置全局重复触发报错。

无需行内禁用注释的解决方案
  • 方案1:全局关闭内置全局变量的重名校验
    如果可以接受所有自定义全局都不与内置全局做重名校验,仅保留代码内部重复声明的校验能力,直接修改.eslintrc的rules配置即可,这是官方推荐的标准解法:
{
  "rules": {
    "no-redeclare": ["error", { "builtinGlobals": false }]
  }
}
  • 方案2:仅放行AS单个变量的重名冲突
    如果不想全局关闭内置全局重名校验,只需要单独处理AS这个变量,可以升级到ESLint v8+版本,高版本ESLint会优先识别.eslintrc中自定义的globals配置,自动忽略同名的内置全局变量冲突,无需额外修改规则配置。

内容的提问来源于stack exchange,提问作者Brian Zelip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:30:04