null_check_on_nullable_type_parameter
不要對潛在可空的型別引數使用 null 檢查。
詳情
#不要對潛在可空的型別引數使用 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如果你改用 YAML map 語法配置 linter 規則,請在 linter > rules 下新增 null_check_on_nullable_type_parameter: true
analysis_options.yaml
yaml
linter:
rules:
null_check_on_nullable_type_parameter: true