跳到主要內容

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);
}