跳到主要內容

type_init_formals

穩定
建議
可修正

不要為初始化形式參數加上類型註解。

詳細資訊

#

出自Effective Dart

請勿為初始化形式參數加上類型註解。

如果建構子參數使用 this.x 來初始化欄位,則參數的類型會被理解為與欄位相同的類型。如果建構子參數使用 super.x 來轉發給父類別建構子,則參數的類型會被理解為與父類別建構子參數相同。

為初始化形式參數加上與欄位類型不同的類型註解是可以的。

錯誤範例

dart
class Point {
  int x, y;
  Point(int this.x, int this.y);
}

正確範例

dart
class Point {
  int x, y;
  Point(this.x, this.y);
}

錯誤範例

dart
class A {
  int a;
  A(this.a);
}

class B extends A {
  B(int super.a);
}

正確範例

dart
class A {
  int a;
  A(this.a);
}

class B extends A {
  B(super.a);
}

啟用

#

若要啟用 type_init_formals 規則,請在您的 analysis_options.yaml 檔案中的 linter > rules 下新增 type_init_formals

analysis_options.yaml
yaml
linter:
  rules:
    - type_init_formals

如果您改為使用 YAML 對應語法來設定 linter 規則,請在 linter > rules 下新增 type_init_formals: true

analysis_options.yaml
yaml
linter:
  rules:
    type_init_formals: true