跳到主要內容

type_init_formals

穩定
推薦
可修復

不要給初始化形式引數(initializing formals)新增型別註解。

詳情

#

出自 Effective Dart

不要給初始化形式引數(initializing formals)新增型別註解。

如果建構函式引數使用 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 map 語法來配置 linter 規則,請在 linter > rules 下新增 type_init_formals: true

analysis_options.yaml
yaml
linter:
  rules:
    type_init_formals: true