メインコンテンツにスキップ

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 > rules の下に type_init_formals: true を追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    type_init_formals: true