ReSharper 2025.2 Help

JavaScript 中的代码检查

在 JavaScript 中,ReSharper 2025.2 提供两种代码检查:4 项 检测错误的检查 ,例如语法错误、未解析的符号、编译器错误等(这些检查无法配置或禁用),以及 117 项 专有代码检查 ,您可以 禁用 或更改其 严重性级别
这些 代码检查 帮助您在所有打开的文件中 设计时 检测代码问题,并且还允许您 在特定范围内查找代码问题

可配置的 JavaScript 检查列在下方,并按其 类别 分组。

常见实践和代码改进(3 项检查)

此类别分组了查找中等严重性问题的检查,这些问题主要影响代码的可读性。

检查
ID
EditorConfig 属性

默认严重性

合并局部变量声明和赋值
合并声明和初始化
highlight 显示建议变量声明与初始化合并

建议

语句终止符与代码风格设置不匹配
语句未正确终止
highlight 显示语句未正确终止

警告

使用未来保留字
使用了保留字
highlight 显示使用了保留字

警告

约束违规(1 项检查)

此类别包括代码检查,主要具有 警告严重性级别,用于检测与符号属性相关的违规行为,包括 ReSharper 的代码注解及其他类似问题。

检查
ID
EditorConfig 属性

默认严重性

命名不一致
命名不一致
highlight 显示命名不一致

警告

语法问题(4 项检查)

此类别中的检查会报告字符串字面量和文档注释中的 语法问题

检查
ID
EditorConfig 属性

默认严重性

注释中的语法错误
注释中的语法错误
注释中语法错误的高亮显示

建议

标记属性值中的语法错误
标记属性中的语法错误
标记属性中语法错误的高亮显示

建议

标记文本中的语法错误
标记文本中的语法错误
ReSharper 中标记文本中的语法错误高亮显示

建议

字符串字面量中的语法错误
字符串字面量中的语法错误
ReSharper 中字符串字面量中的语法错误高亮显示

已禁用

语言使用机会(9 项检查)

此类别包括代码检查,主要具有 建议 严重性级别,通知您可以使用更高级的语言结构。 这些检查会检测过时语言版本的语法,并建议使用更现代语言版本的功能。 对于大多数支持的语言,语言版本 可以自动检测或手动设置

检查
ID
EditorConfig 属性

默认严重性

可以用解构替换一系列属性的未定义检查
使用对象解构替换 undefined 检查序列
ReSharper 中使用对象解构替换 undefined 检查序列高亮显示

提示

中间局部变量是多余的,可以安全地内联
冗余的中间变量
ReSharper 中冗余的中间变量高亮显示

提示

中间局部变量是多余的,因为可以用解构交换表达式替换
替换为解构赋值交换
ReSharper 中替换为解构赋值交换高亮显示

提示

局部变量可以安全地移动到内部块
变量可移动到内部代码块
ReSharper 中变量可移动到内部代码块高亮显示

提示

字符串拼接可以转换为模板字符串
字符串拼接转换为模板字符串
ReSharper 中字符串拼接转换为模板字符串高亮显示

提示

后续索引器可以用解构声明或赋值替换
使用数组解构替代索引访问
ReSharper 中使用数组解构替代索引访问高亮显示

提示

对象字面量字段中的后续索引器可以通过解构简化
解构后使用简写属性替代索引访问
ReSharper 中解构后使用简写属性替代索引访问高亮显示

提示

'var' 变量可以改为 'let' 变量
变量可以改为 let
ReSharper 中变量可以改为 let 高亮显示

提示

变量可以改为常量
变量可以改为 const
ReSharper 中变量可以改为 const 高亮显示

提示

潜在的代码质量问题(68 项检查)

此类别包括检测关键问题(代码异味)的检查,主要具有 错误警告 级别。 此类别还包括 确保本地化支持的检查

检查
ID
EditorConfig 属性

默认严重性

'?:' 表达式的 true 和 false 分支相同
条件表达式分支相同
ReSharper 中条件表达式分支相同高亮显示

警告

数组的尾部元素被省略
省略的尾元素
ReSharper 中省略的尾元素高亮显示

警告

在条件语句中对变量赋值
条件表达式中的赋值
ReSharper 中条件表达式中的赋值高亮显示

警告

对隐式声明的全局变量赋值
在函数作用域内赋值为隐式全局变量
ReSharper 中在函数作用域内赋值为隐式全局变量高亮显示

警告

对常量赋值
对常量进行赋值
ReSharper 中对常量进行赋值高亮显示

错误

无法解析符号
未解析引用
ReSharper 中未解析引用高亮显示

警告

闭包引用了外部作用域中在循环中修改的变量
闭包使用了已修改的变量
highlight 显示闭包使用了已修改的变量

警告

对象字面量中缺少逗号
对象字面量中缺少逗号
highlight 显示对象字面量中缺少逗号

错误

此处逗号无效
此处逗号无效
highlight 显示此处逗号无效

错误

'typeof' 表达式与不正确的值进行比较
typeof 比较中的操作数不正确
highlight 显示 typeof 比较中的操作数不正确

警告

条件始终为常量
条件始终为常量
highlight 显示条件始终为常量

警告

构造函数调用未使用或可能用于副作用
构造函数调用未被使用
highlight 显示构造函数调用未被使用

警告

声明隐藏了外部作用域的另一个声明
声明隐藏了现有元素
highlight 显示声明隐藏了现有元素

提示

重复的属性声明
重复的属性声明
highlight 显示重复的属性声明

警告

重复的 switch 标签
重复的 switch 标签
highlight 显示重复的 switch 标签

警告

在 ES 5 或更低版本中使用 ECMAScript 2015 功能
使用了 ES6 特性
highlight 显示使用了 ES6 特性

错误

在 ES 2015 或更低版本中使用 ECMAScript 2016 功能
使用了 ES7 特性
highlight 显示使用了 ES7 特性

错误

XML 文档注释引用中的错误
XML 文档引用中存在错误
highlight 显示 XML 文档引用中存在错误

错误

在语言级别设置为稳定时使用实验性功能
使用了实验性特性
highlight 显示使用了实验性特性

错误

表达式始终为常量
表达式始终为常量
highlight 显示表达式始终为常量

警告

'throw' 语句后需要表达式
throw 必须后跟表达式
highlight 显示 throw 必须后跟表达式

错误

扩展原生对象的原型
扩展了原生类型的 prototype
highlight 显示扩展了原生类型的 prototype

警告

启发式不可达代码
启发式判断为不可达代码
highlight 显示启发式判断为不可达代码

警告

XML 代码注释中的非法语法
XML 文档注释语法问题
highlight 显示 XML 文档注释语法问题

警告

此处不允许使用 'import' 关键字
import 关键字不能与调用一起使用
highlight 显示 import 关键字不能与调用一起使用

错误

函数返回值不一致
函数返回不一致
highlight 显示函数返回不一致

警告

无效的 JSON 语法
JSON 语法无效
highlight 显示 JSON 语法无效

错误

调用非函数表达式
调用了非函数表达式
highlight 显示调用了非函数表达式

警告

调用的表达式不是函数值
调用的表达式可能不是函数
highlight 显示调用的表达式可能不是函数

警告

JSON 验证失败
JSON 验证失败
highlight 显示 JSON 验证失败

错误

词法声明只能在块内声明
词法声明需要代码块
highlight 显示词法声明需要代码块

错误

局部函数在后续被重新定义
局部函数后续被重新定义
highlight 显示局部函数后续被重新定义

警告

需要左值错误
需要左值
highlight 显示需要左值

错误

在内部函数中误用 'this' 限定符
错误使用了函数所有者中的 this
highlight 显示错误使用了函数所有者中的 this

警告

'for in' 中的多重声明错误
foreach 中存在多个声明
highlight 显示 foreach 中存在多个声明

错误

未赋值的常量
未赋值的常量
highlight 显示未赋值的常量

错误

非括号的对象解构赋值不能用于表达式语句
对象解构语法中缺失括号
highlight 显示对象解构语法中缺失括号

错误

并非所有代码路径都返回值
并非所有路径都返回值
highlight 显示并非所有路径都返回值

警告

需要对象属性声明
空对象属性声明
highlight 显示空对象属性声明

错误

覆盖原生对象的原型
覆盖了原生类型的 prototype
highlight 显示覆盖了原生类型的 prototype

警告

参数名称 'arguments' 与预定义的 JS 函数作用域变量冲突
函数参数使用命名参数
highlight 显示函数参数使用命名参数

警告

参数值未被使用
参数值未被使用
highlight 显示参数值未被使用

警告

未找到引用注释的路径
未找到 JS 路径
highlight 显示未找到 JS 路径

错误

可能的错误:模糊的 lambda 块和对象字面量
可疑的 lambda 块
highlight 显示可疑的 lambda 块

警告

属性 getter 不能有参数
属性 getter 不能包含参数
highlight 显示属性 getter 不能包含参数

错误

属性 setter 必须有一个参数
属性 setter 必须具有单个参数
highlight 显示属性 setter 必须具有单个参数

错误

限定符可以是 'null' 或 'undefined'
限定表达式可能为 null
highlight 显示限定表达式可能为 null

警告

限定符是 'null' 或 'undefined'
限定表达式为 null
highlight 显示限定表达式为 null

警告

重复声明 let/const
块作用域内的重复声明
highlight 显示块作用域内的重复声明

错误

全局作用域中的 return 语句带有值
全局作用域的 return 返回值
highlight 显示全局作用域的 return 返回值

警告

相似表达式比较
对相似表达式进行比较
类似表达式比较高亮显示

警告

语句可能被错误地通过换行符中断
语句可能被错误地中断
语句可能被错误地中断的高亮显示

警告

在派生类的构造函数中访问 'this' 之前必须调用 'super'
调用 super 禁止使用 this
调用 super 禁止使用 this 的高亮显示

错误

可疑的表达式语句
表达式语句不正确
表达式语句不正确的高亮显示

警告

在 'for in' 循环体中没有 .hasOwnProperty() 检查。 这将导致枚举原型属性。
在 foreach 中缺少 hasOwnProperty 检查
在 foreach 中缺少 hasOwnProperty 检查的高亮显示

警告

对象属性列表中的尾随冗余逗号可能导致错误
对象属性列表中的逗号不安全
对象属性列表中的逗号不安全的高亮显示

警告

三斜线指令仅在文件顶部有效
三斜线指令位置不正确
三斜线指令位置不正确的高亮显示

警告

可能未赋值的局部变量的使用
使用了可能未赋值的值
使用可能未赋值值的高亮显示

警告

未赋值的局部变量的使用
使用了确定未赋值的值
使用确定未赋值值的高亮显示

警告

在循环体外使用 'break' 或 'continue'
跳转语句必须位于循环中
跳转语句必须位于循环中的高亮显示

警告

在 'break' 或 'continue' 之后使用表达式
缺少标签或分号
缺少标签或分号的高亮显示

错误

使用隐式声明的全局变量
函数作用域中使用了隐式全局变量
函数作用域中使用了隐式全局变量的高亮显示

警告

可能未赋值的属性或全局变量的使用
属性可能未赋值
属性可能未赋值的高亮显示

提示

在全局上下文中使用 'this'
在全局上下文中使用 this
在全局上下文中使用 this 的高亮显示

警告

使用 'arguments.caller' 和 'arguments.callee'
使用了 caller 或 callee
使用 caller 或 callee 的高亮显示

警告

使用强制相等(使用与 'null' 或 'undefined' 的强制相等运算符)
使用 == 或 != 比较 null 或 undefined
使用 == 或 != 比较 null 或 undefined 的高亮显示

已禁用

使用强制相等(使用强制相等运算符)
使用了强制类型转换的比较
使用强制类型转换的比较的高亮显示

警告

变量在声明之前被使用
变量在声明前使用
变量在声明前使用的高亮显示

警告

代码中的冗余(4 项检查)

此类别中的代码检查查找冗余和无用代码,这些代码会影响代码的可读性和风格,并且可以安全地移除。 某些代码冗余无法自动修复,其快速修复需要在交互模式下进行,需用户输入。 但大多数冗余可以在无需用户交互的情况下修复,使用 范围内修复代码清理

检查
ID
EditorConfig 属性

默认严重性

赋值的值从未被使用
赋值的值从未使用
赋值的值从未使用的高亮显示

警告

冗余块
冗余代码块
冗余代码块的高亮显示

警告

冗余的空 finally 块
冗余的空 finally 块
ReSharper 中的冗余空 finally 块高亮显示

警告

无法到达的代码
不可达代码
ReSharper 中不可达代码高亮显示

警告

符号声明中的冗余(11 项检查)

此类别包括代码检查,主要具有 警告 严重性级别,用于检测空的和未使用的符号声明。

检查
ID
EditorConfig 属性

默认严重性

局部变量赋值给自身是多余的
重复的变量赋值
ReSharper 中重复的变量赋值高亮显示

警告

重复的局部声明
重复的局部声明
ReSharper 中重复的局部声明高亮显示

警告

冗余的 'else' 块
冗余的 else 块
ReSharper 中冗余的 else 块高亮显示

警告

冗余的局部类名
冗余的本地类名
ReSharper 中冗余的本地类名高亮显示

提示

冗余的局部函数名
冗余的本地函数名
ReSharper 中冗余的本地函数名高亮显示

提示

类型从未使用(非私有可访问性)
未使用的类型(全局)
ReSharper 中未使用的类型(全局)高亮显示

建议

类型成员从未使用(非私有可访问性)
未使用的成员(全局)
ReSharper 中未使用的成员(全局)高亮显示

建议

未使用的局部变量 / 函数 / 类
未使用的局部变量
ReSharper 中未使用的局部变量高亮显示

警告

未使用的参数
未使用的参数
ReSharper 中未使用的参数高亮显示

警告

继承成员的未使用参数
未使用的继承参数
ReSharper 中未使用的继承参数高亮显示

提示

未使用的属性或函数
未使用的属性
ReSharper 中未使用的属性高亮显示

警告

拼写问题(3 项检查)

这些检查 检测各种上下文中的拼写错误

检查
ID
EditorConfig 属性

默认严重性

注释中的拼写错误
注释拼写错误
ReSharper 中注释拼写错误高亮显示

建议

标识符中的拼写错误
标识符拼写错误
ReSharper 中标识符拼写错误高亮显示

建议

字符串字面量中的拼写错误
字符串字面量拼写错误
ReSharper 中字符串字面量拼写错误高亮显示

建议

严格模式违规(9 项检查)

检查
ID
EditorConfig 属性

默认严重性

在 'strict mode' 中对非限定标识符调用 'delete'
删除未限定引用
ReSharper 中删除未限定引用高亮显示

错误

在 'strict mode' 中重复的参数声明
重复的参数声明错误
ReSharper 中重复的参数声明错误高亮显示

错误

在 'strict mode' 中重复的属性声明
重复的属性声明错误
ReSharper 中重复的属性声明错误高亮显示

错误

在 'strict mode' 中使用八进制字面量和转义序列
不允许八进制字面量错误
ReSharper 中不允许八进制字面量错误高亮显示

错误

在 'strict mode' 中使用 'arguments.caller' 和 'arguments.callee'
使用 caller/callee 错误
ReSharper 中使用 caller/callee 错误高亮显示

错误

在 'strict mode' 中使用 'eval'/'arguments' 名称
eval 或 arguments 命名错误
ReSharper 中 eval 或 arguments 命名错误高亮显示

错误

在 'strict mode' 中使用未来保留关键字
使用保留字错误
ReSharper 中使用保留字错误高亮显示

错误

使用未声明的全局变量
使用未声明的全局变量
ReSharper 中使用未声明的全局变量高亮显示

警告

在 'strict mode' 中使用 'with' 语句
使用 with 语句错误
ReSharper 中使用 with 语句错误高亮显示

错误

语法风格(5 项检查)

此类别中的检查检测 代码语法风格 的违规行为。 与大多数代码检查不同,这些检查是否将相同的代码结构检测为代码问题取决于在 ReSharper 选项 的 代码编辑 | JavaScript | 语法样式 页面上配置的相应代码风格规则 Alt+R, O 。 您还可以使用 代码清理 修复这些检查检测到的问题。

检查
ID
EditorConfig 属性

默认严重性

函数在声明之前被使用
函数在声明前使用
ReSharper 中函数在声明前使用高亮显示

已禁用

函数在声明范围之外被使用
函数在作用域外使用
ReSharper 中函数在作用域外使用高亮显示

警告

字符串字面量周围的引号不符合规范
字符串字面量引号错误
ReSharper 中字符串字面量引号错误高亮显示

提示

变量在内部作用域中声明之前被使用
变量在内部块中声明前使用
ReSharper 中变量在内部块中声明前使用高亮显示

警告

变量在声明范围之外被使用
变量在作用域外使用
ReSharper 中变量在作用域外使用高亮显示

警告

最后修改日期: 2025年 9月 27日