跳到主要内容

type_check_with_null

对非 null 的测试应使用 '!= null' 进行。

对 null 的测试应使用 '== null' 进行。

描述

#

当存在类型为 Null 的类型检查(使用 as 运算符)时,分析器会生成此诊断。由于只有一个值为 Null 类型,因此显式测试 null 可以使代码更具可读性且性能更高。

示例

#

以下代码会生成此诊断,因为它使用类型检查来测试 s 的值是否为 null

dart
void f(String? s) {
  if (s is Null) {
    return;
  }
  print(s);
}

以下代码会生成此诊断,因为它使用类型检查来测试 s 的值是否为非 null

dart
void f(String? s) {
  if (s is! Null) {
    print(s);
  }
}

常见修复方法

#

使用等效的与 null 的比较来替换类型检查

dart
void f(String? s) {
  if (s == null) {
    return;
  }
  print(s);
}