null_check_on_nullable_type_parameter
不要对潜在可空的类型参数使用 null 检查。
详情
#不要对潜在可空的类型参数使用 null 检查。
给定一个具有可空边界(例如默认边界 Object?)的泛型类型参数 T,在使用类型为 T? 的变量时,很容易引入错误的 null 检查。具体来说,常见的情况是声明 T? x; 并希望断言 x 已被设置为类型 T 的有效值。一个常见的错误是使用 x! 来进行断言。这几乎总是错误的,因为如果 T 是一个可空类型,x 可以合法地持有 null 作为类型 T 的一个值。
错误示例
dart
T run<T>(T callback()) {
T? result;
(() { result = callback(); })();
return result!;
}正确示例
dart
T run<T>(T callback()) {
T? result;
(() { result = callback(); })();
return result as T;
}启用
#要启用 null_check_on_nullable_type_parameter 规则,请在你的 analysis_options.yaml 文件的 linter > rules 下添加 null_check_on_nullable_type_parameter
analysis_options.yaml
yaml
linter:
rules:
- null_check_on_nullable_type_parameter如果你改用 YAML map 语法配置 linter 规则,请在 linter > rules 下添加 null_check_on_nullable_type_parameter: true
analysis_options.yaml
yaml
linter:
rules:
null_check_on_nullable_type_parameter: true