目录

null_check_on_nullable_type_parameter

不要对可能为空的类型参数使用 null 检查。

此规则从 Dart 2.12 开始可用。

规则集:核心推荐flutter

此规则有一个可用的快速修复

详情

#

不要对可能为空的类型参数使用 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