如何将Dart中不可能的相等性检查警告转为错误?
Dart内置的unrelated_type_equality_checks lint规则可以检测无关类型之间的相等性判断(比如字符串和布尔值比较),但默认只会触发警告,在大型项目中很容易被忽略,就像你提供的示例代码那样:
void giveAccessToEverything() { /// 核弹权限 } void main () { final isAdmin = "isAdmin"; // 迁移2.0时数据库团队改成了枚举,但这里漏改了 if (isAdmin != true) { // 没人注意到这个问题,锅得Dart背 return; } giveAccessToEverything(); }
要把这个警告升级为错误,强制开发者必须修复,只需修改项目的analysis_options.yaml配置文件:
- 打开项目根目录下的
analysis_options.yaml(如果没有就新建一个) - 在
linter的rules节点下,将unrelated_type_equality_checks的级别设置为error:
linter: rules: - unrelated_type_equality_checks: error
配置完成后,Dart分析器会把所有无关类型相等性判断的情况直接标记为编译错误,而不是警告,确保这类潜在的严重bug不会被遗漏。
内容的提问来源于stack exchange,提问作者TSR
相关产品推荐
相关产品推荐

