diagnostic_describe_all_properties
在除錯方法中參考所有公開屬性。
此規則在 Dart 2.3 或更新版本中提供。
此規則提供快速修正。
詳細資訊
#請在 debug
方法實作中參考所有公開屬性。
Diagnosticable
的實作者應在 debugFillProperties(...)
或 debugDescribeChildren(...)
方法實作中參考所有公開屬性,以改善執行時的除錯能力。
公開屬性定義為欄位和 getter,它們是
- 非套件私有(例如,以
_
為前綴) - 非
static
或覆寫 - 本身不是
Widget
或Widget
的集合
此外,Flutter 中會特別處理「debug」前綴的屬性。為了診斷目的,屬性 foo
和帶前綴的屬性 debugFoo
被視為有效地描述相同的屬性,並且參考其中一個就足夠了。
錯誤範例
dart
class Absorber extends Widget {
bool get absorbing => _absorbing;
bool _absorbing;
bool get ignoringSemantics => _ignoringSemantics;
bool _ignoringSemantics;
@override
void debugFillProperties(DiagnosticPropertiesBuilder properties) {
super.debugFillProperties(properties);
properties.add(DiagnosticsProperty<bool>('absorbing', absorbing));
// Missing reference to ignoringSemantics
}
}
正確範例
dart
class Absorber extends Widget {
bool get absorbing => _absorbing;
bool _absorbing;
bool get ignoringSemantics => _ignoringSemantics;
bool _ignoringSemantics;
@override
void debugFillProperties(DiagnosticPropertiesBuilder properties) {
super.debugFillProperties(properties);
properties.add(DiagnosticsProperty<bool>('absorbing', absorbing));
properties.add(DiagnosticsProperty<bool>('ignoringSemantics', ignoringSemantics));
}
}
用法
#若要啟用 diagnostic_describe_all_properties
規則,請在 analysis_options.yaml
檔案中的 linter > rules 下新增 diagnostic_describe_all_properties
analysis_options.yaml
yaml
linter:
rules:
- diagnostic_describe_all_properties
除非另有說明,否則本網站上的文件反映 Dart 3.6.0。頁面最後更新於 2024-07-03。 檢視原始碼 或回報問題。