TypeScript 中的代码检查
在 TypeScript 中,ReSharper 2025.2 提供两种代码检查:141 项 检测错误的检查 ,例如语法错误、未解析的符号、编译器错误等(这些检查无法配置或禁用),以及 55 项 专有代码检查 ,您可以 禁用 或更改其 严重性级别。
这些 代码检查 帮助您在所有打开的文件中 设计时 检测代码问题,并且还允许您 在特定范围内查找代码问题。
可配置的 TypeScript 检查列在下方,并按其 类别 分组。
常见实践和代码改进(4 项检查)
此类别分组了查找中等严重性问题的检查,这些问题主要影响代码的可读性。
检查 ID EditorConfig 属性 | 默认严重性 |
|---|
抽象类的构造函数可以设为受保护
抽象类构造函数可设为 protected
抽象类构造函数可设为 protected 的 ReSharper 高亮显示 | 提示 |
引入变量将允许应用类型守卫
引入变量以应用守卫
引入变量以应用守卫的 ReSharper 高亮显示 | 提示 |
私有类字段可以设为只读
私有变量可设为 readonly
注释拼写错误的 ReSharper 高亮显示 | 提示 |
字符串字面量的使用允许创建专用重载
创建特化的重载
创建特化的重载说明 | 提示 |
语法问题(4 项检查)
此类别中的检查会报告字符串字面量和文档注释中的 语法问题。
语言使用机会(9 项检查)
此类别包括代码检查,主要具有 建议 严重性级别,通知您可以使用更高级的语言结构。 这些检查会检测过时语言版本的语法,并建议使用更现代语言版本的功能。 对于大多数支持的语言,语言版本 可以自动检测或手动设置。
检查 ID EditorConfig 属性 | 默认严重性 |
|---|
AMD 模块可以转换为外部模块
Amd 外部模块
Amd 外部模块的 ReSharper 高亮显示 | 建议 |
类模拟可以转换为类
类
类的 ReSharper 高亮显示 | 建议 |
CommonJs 模块可以转换为外部模块
CommonJs 外部模块
CommonJs 外部模块的 ReSharper 高亮显示 | 建议 |
函数表达式可以转换为 lambda 表达式
Lambda 表达式
Lambda 表达式的 ReSharper 高亮显示 | 建议 |
立即调用的函数表达式可以转换为内部模块
内部模块
内部模块的 ReSharper 高亮显示 | 建议 |
父类的调用可以转换为 super 调用
Super 调用
Super 调用的 ReSharper 高亮显示 | 建议 |
由函数分配的成员可以转换为函数成员
方法中安全使用 this
方法安全 this 的 ReSharper 高亮显示 | 建议 |
可能的重载可以通过函数体推断
推断重载签名
推断重载签名的 ReSharper 高亮显示 | 提示 |
使用 'as' 运算符代替类型断言
使用 as 替代类型转换
使用 as 替代类型转换的 ReSharper 高亮显示 | 提示 |
潜在的代码质量问题(15 项检查)
此类别包括检测关键问题(代码异味)的检查,主要具有 错误 或 警告 级别。 此类别还包括 确保本地化支持的检查。
检查 ID EditorConfig 属性 | 默认严重性 |
|---|
无法解析,可能符号位于不可访问的模块中
从不可访问模块解析的 TypeScript 元素
从不可访问模块解析的 ReSharper 高亮显示 | 错误 |
以与 require() 参数相同的方式检查 'amd-dependency'
Amd 依赖路径问题
Amd 依赖路径问题的 ReSharper 高亮显示 | 已禁用 |
重复的标识符
重复标识符错误
重复标识符错误的 ReSharper 高亮显示 | 错误 |
类型注释函数的返回值为空
类型注解函数缺少返回值
类型注解函数缺少返回值的 ReSharper 高亮显示 | 警告 |
导出的实体使用了私有实体
声明可见性错误
声明可见性错误的 ReSharper 高亮显示 | 错误 |
当设置 NoImplicitAny 时的 '隐式 any' 检查
隐式 any 类型错误
隐式 any 类型错误的 ReSharper 高亮显示 | 错误 |
更具体的签名跟随不太具体的签名
比更通用类型更具体的签名出现于后
比更通用类型更具体签名的 ReSharper 高亮显示 | 警告 |
重载比主签名更不具体
比主签名更不具体的重载
比主签名更不具体重载的 ReSharper 高亮显示 | 警告 |
在构造函数中分配的参数属性值不会分配给类属性
分配的值未分配到对应字段
分配值未分配到对应字段的 ReSharper 高亮显示 | 警告 |
可疑的 'instanceof' 检查
可疑的 instanceof 检查
可疑的 instanceof 检查的 ReSharper 高亮显示 | 警告 |
在类成员内的本地函数上下文中使用可疑的 'this'
可疑的 this 使用
可疑的 this 使用的 ReSharper 高亮显示 | 警告 |
可疑的 'typeof' 检查
可疑的 typeof 检查
可疑的 typeof 检查的 ReSharper 高亮显示 | 警告 |
类型参数隐藏了外部作用域中声明的类型参数
类型参数隐藏外部作用域中的类型参数
类型参数隐藏外部作用域参数的 ReSharper 高亮显示 | 警告 |
在静态初始化器中使用可能未分配的属性
使用可能未赋值的属性
使用可能未赋值属性的 ReSharper 高亮显示 | 警告 |
使用未声明的变量
TypeScript 无法解析
TypeScript 无法解析的 ReSharper 高亮显示 | 错误 |
代码中的冗余(9 项检查)
此类别中的代码检查查找冗余和无用代码,这些代码会影响代码的可读性和风格,并且可以安全地移除。 某些代码冗余无法自动修复,其快速修复需要在交互模式下进行,需用户输入。 但大多数冗余可以在无需用户交互的情况下修复,使用 范围内修复 或 代码清理。
检查 ID EditorConfig 属性 | 默认严重性 |
|---|
布尔值与布尔值的比较等同于值或取反值
与布尔值的冗余比较
与布尔值冗余比较的 ReSharper 高亮显示 | 警告 |
布尔值的双重否定是多余的
布尔值的双重取反
布尔值双重取反的 ReSharper 高亮显示 | 警告 |
重复的引用注释是多余的
重复的引用注释
重复引用注释的 ReSharper 高亮显示 | 警告 |
在 extends/implements 中冗余的父类型规范
冗余的父类型声明
冗余的父类型声明的 ReSharper 高亮显示 | 警告 |
冗余限定符
冗余限定符
冗余限定符的 ReSharper 高亮显示 | 警告 |
引用注释创建了循环依赖
循环引用注释
循环引用注释的 ReSharper 高亮显示 | 已禁用 |
三元运算符可以用其条件替代
可使用条件替代三元运算
可用条件替代三元运算的 ReSharper 高亮显示 | 警告 |
类型转换是多余的:表达式始终为提供的类型
冗余类型转换
冗余类型转换的 ReSharper 高亮显示 | 警告 |
类型转换是多余的:表达式为结构兼容的类型
冗余结构类型转换
冗余结构类型转换的 ReSharper 高亮显示 | 警告 |
符号声明中的冗余(6 项检查)
此类别包括代码检查,主要具有 警告 严重性级别,用于检测空的和未使用的符号声明。
检查 ID EditorConfig 属性 | 默认严重性 |
|---|
参数不是主签名的一部分
参数无意义
参数无意义的 ReSharper 高亮显示 | 警告 |
冗余的无参数空构造函数
冗余的空构造函数
冗余空构造函数的 ReSharper 高亮显示 | 警告 |
同一项以不同名称导入了两次
不同名称但相同导入
同名导入但名称不同的 ReSharper 高亮显示 | 警告 |
类型守卫肯定会为变量生成 'never' 类型
类型守卫生成 never 类型
类型守卫生成 never 类型的 ReSharper 高亮显示 | 警告 |
类型守卫不会以任何方式影响变量的类型
类型守卫无实际影响
类型守卫无效的 ReSharper 高亮显示 | 警告 |
未使用的本地导入
未使用的本地导入
未使用本地导入的 ReSharper 高亮显示 | 警告 |
语法风格(5 项检查)
此类别中的检查检测 代码语法风格 的违规行为。 与大多数代码检查不同,这些检查是否将相同的代码结构检测为代码问题取决于在 ReSharper 选项 的 页面上配置的相应代码风格规则
Alt+R, O
。 您还可以使用 代码清理 修复这些检查检测到的问题。
检查 ID EditorConfig 属性 | 默认严重性 |
|---|
元素具有隐式 'any' 类型
隐式 any 类型警告
隐式 any 类型警告的 ReSharper 高亮显示 | 警告 |
在 'require' 中的路径样式不符合规范
错误的 require 相对路径
错误的 require 相对路径说明 | 提示 |
不符合规范的 'public' 修饰符或其缺失
错误的 public 修饰符指定
错误的 public 修饰符说明 | 提示 |
可以显式指定变量的类型
显式指定变量类型
显式指定变量类型说明 | 提示 |
类型规范是多余的,因为变量类型是根据分配值的类型上下文确定的
冗余的变量类型指定
冗余的变量类型说明 | 提示 |
最后修改日期: 2025年 9月 27日