内容

null_check_on_nullable_type_parameter

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

此规则从 Dart 2.12 开始可用。

规则集:核心推荐Flutter

此规则提供了快速修复

详情

#

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

给定一个具有可空约束的泛型类型参数T(例如,Object?的默认约束),在使用类型为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