strict_top_level_inference
指定類型註解。
詳細資訊
#對於頂層和類別型成員宣告,當類型不是從超介面或初始化器推斷而來時,請進行類型註解。
此 lint 警告關於每個被省略的返回類型、參數類型和頂層宣告或類別型命名空間層級宣告(靜態或實例成員或建構子宣告)的變數類型,這些類型不是由推斷給定的,因此預設為 dynamic。
唯一可以通過頂層推斷給定類型的省略類型,是那些具有初始化表達式的變數宣告,以及覆蓋一致組合超介面簽名的實例成員的返回和參數類型。
Setters 不需要返回類型,因為它始終被假定為 void
。
不良
dart
var _zeroPointCache;
class Point {
get zero => ...;
final x, y;
Point(x, y) {}
closest(b, c) => distance(b) <= distance(c) ? b : c;
distance(other) => ...;
}
_sq(v) => v * v;
良好
dart
Point? _zeroPointCache;
class Point {
Point get zero => ...;
final int x, y;
Point(int x, int y) {}
closest(Point b, Point c) =>
distance(b) <= distance(c) ? b : c;
distance(Point other) => ...;
}
int _sq(int v) => v * v;
啟用
#若要啟用 strict_top_level_inference
規則,請在您的 analysis_options.yaml
檔案中的 linter > rules 下新增 strict_top_level_inference
analysis_options.yaml
yaml
linter:
rules:
- strict_top_level_inference
如果您改為使用 YAML map 語法來配置 linter 規則,請在 linter > rules 下新增 strict_top_level_inference: true
analysis_options.yaml
yaml
linter:
rules:
strict_top_level_inference: true
除非另有說明,否則本網站上的文件反映 Dart 3.7.1 版本。頁面上次更新於 2025-03-07。 檢視原始碼 或 回報問題。