JavaScript 中的代码检查
在 JavaScript 中,ReSharper 2025.2 提供两种代码检查:4 项 检测错误的检查 ,例如语法错误、未解析的符号、编译器错误等(这些检查无法配置或禁用),以及 117 项 专有代码检查 ,您可以 禁用 或更改其 严重性级别。
这些 代码检查 帮助您在所有打开的文件中 设计时 检测代码问题,并且还允许您 在特定范围内查找代码问题。
可配置的 JavaScript 检查列在下方,并按其 类别 分组。
常见实践和代码改进(3 项检查)
此类别分组了查找中等严重性问题的检查,这些问题主要影响代码的可读性。
约束违规(1 项检查)
此类别包括代码检查,主要具有 警告严重性级别,用于检测与符号属性相关的违规行为,包括 ReSharper 的代码注解及其他类似问题。
命名不一致 |
语法问题(4 项检查)
此类别中的检查会报告字符串字面量和文档注释中的 语法问题。
注释中的语法错误 | |
标记属性值中的语法错误 | |
标记文本中的语法错误 | |
字符串字面量中的语法错误 |
语言使用机会(9 项检查)
此类别包括代码检查,主要具有 建议 严重性级别,通知您可以使用更高级的语言结构。 这些检查会检测过时语言版本的语法,并建议使用更现代语言版本的功能。 对于大多数支持的语言,语言版本 可以自动检测或手动设置。
可以用解构替换一系列属性的未定义检查 | |
中间局部变量是多余的,可以安全地内联 | |
中间局部变量是多余的,因为可以用解构交换表达式替换 | |
局部变量可以安全地移动到内部块 | |
字符串拼接可以转换为模板字符串 | |
后续索引器可以用解构声明或赋值替换 | |
对象字面量字段中的后续索引器可以通过解构简化 | |
'var' 变量可以改为 'let' 变量 | |
变量可以改为常量 |
潜在的代码质量问题(68 项检查)
此类别包括检测关键问题(代码异味)的检查,主要具有 错误 或 警告 级别。 此类别还包括 确保本地化支持的检查。
'?:' 表达式的 true 和 false 分支相同 | |
数组的尾部元素被省略 | |
在条件语句中对变量赋值 | |
对隐式声明的全局变量赋值 | |
对常量赋值 | |
无法解析符号 | |
闭包引用了外部作用域中在循环中修改的变量 | |
对象字面量中缺少逗号 | |
此处逗号无效 | |
'typeof' 表达式与不正确的值进行比较 | |
条件始终为常量 | |
构造函数调用未使用或可能用于副作用 | |
声明隐藏了外部作用域的另一个声明 | |
重复的属性声明 | |
重复的 switch 标签 | |
在 ES 5 或更低版本中使用 ECMAScript 2015 功能 | |
在 ES 2015 或更低版本中使用 ECMAScript 2016 功能 | |
XML 文档注释引用中的错误 | |
在语言级别设置为稳定时使用实验性功能 | |
表达式始终为常量 | |
'throw' 语句后需要表达式 | |
扩展原生对象的原型 | |
启发式不可达代码 | |
XML 代码注释中的非法语法 | |
此处不允许使用 'import' 关键字 | |
函数返回值不一致 | |
无效的 JSON 语法 | |
调用非函数表达式 | |
调用的表达式不是函数值 | |
JSON 验证失败 | |
词法声明只能在块内声明 | |
局部函数在后续被重新定义 | |
需要左值错误 | |
在内部函数中误用 'this' 限定符 | |
'for in' 中的多重声明错误 | |
未赋值的常量 | |
非括号的对象解构赋值不能用于表达式语句 | |
并非所有代码路径都返回值 | |
需要对象属性声明 | |
覆盖原生对象的原型 | |
参数名称 'arguments' 与预定义的 JS 函数作用域变量冲突 | |
参数值未被使用 | |
未找到引用注释的路径 | |
可能的错误:模糊的 lambda 块和对象字面量 | |
属性 getter 不能有参数 | |
属性 setter 必须有一个参数 | |
限定符可以是 'null' 或 'undefined' | |
限定符是 'null' 或 'undefined' | |
重复声明 let/const | |
全局作用域中的 return 语句带有值 | |
相似表达式比较 | |
语句可能被错误地通过换行符中断 | |
在派生类的构造函数中访问 'this' 之前必须调用 'super' | |
可疑的表达式语句 | |
在 'for in' 循环体中没有 .hasOwnProperty() 检查。 这将导致枚举原型属性。 | |
对象属性列表中的尾随冗余逗号可能导致错误 | |
三斜线指令仅在文件顶部有效 | |
可能未赋值的局部变量的使用 | |
未赋值的局部变量的使用 | |
在循环体外使用 'break' 或 'continue' | |
在 'break' 或 'continue' 之后使用表达式 | |
使用隐式声明的全局变量 | |
可能未赋值的属性或全局变量的使用 | |
在全局上下文中使用 'this' | |
使用 'arguments.caller' 和 'arguments.callee' | |
使用强制相等(使用与 'null' 或 'undefined' 的强制相等运算符) | |
使用强制相等(使用强制相等运算符) | |
变量在声明之前被使用 |
代码中的冗余(4 项检查)
此类别中的代码检查查找冗余和无用代码,这些代码会影响代码的可读性和风格,并且可以安全地移除。 某些代码冗余无法自动修复,其快速修复需要在交互模式下进行,需用户输入。 但大多数冗余可以在无需用户交互的情况下修复,使用 范围内修复 或 代码清理。
符号声明中的冗余(11 项检查)
此类别包括代码检查,主要具有 警告 严重性级别,用于检测空的和未使用的符号声明。
局部变量赋值给自身是多余的 | |
重复的局部声明 | |
冗余的 'else' 块 | |
冗余的局部类名 | |
冗余的局部函数名 | |
类型从未使用(非私有可访问性) | |
类型成员从未使用(非私有可访问性) | |
未使用的局部变量 / 函数 / 类 | |
未使用的参数 | |
继承成员的未使用参数 | |
未使用的属性或函数 |
拼写问题(3 项检查)
这些检查 检测各种上下文中的拼写错误。
注释中的拼写错误 | |
标识符中的拼写错误 | |
字符串字面量中的拼写错误 |
严格模式违规(9 项检查)
在 'strict mode' 中对非限定标识符调用 'delete' | |
在 'strict mode' 中重复的参数声明 | |
在 'strict mode' 中重复的属性声明 | |
在 'strict mode' 中使用八进制字面量和转义序列 | |
在 'strict mode' 中使用 'arguments.caller' 和 'arguments.callee' | |
在 'strict mode' 中使用 'eval'/'arguments' 名称 | |
在 'strict mode' 中使用未来保留关键字 | |
使用未声明的全局变量 | |
在 'strict mode' 中使用 'with' 语句 |
语法风格(5 项检查)
此类别中的检查检测 代码语法风格 的违规行为。 与大多数代码检查不同,这些检查是否将相同的代码结构检测为代码问题取决于在 ReSharper 选项 的 页面上配置的相应代码风格规则 Alt+R, O 。 您还可以使用 代码清理 修复这些检查检测到的问题。