目錄

null_check_on_nullable_type_parameter

不要在可能為空值的類型參數上使用 null 檢查。

此規則自 Dart 2.12 起可用。

規則集:corerecommendedflutter

此規則有可用的快速修復

詳細資訊

#

不要在可能為空值的類型參數上使用 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