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

overridden_fields

安定版
推奨

フィールドをオーバーライドしないでください。

詳細

#

フィールドをオーバーライドしないでください。

フィールドのオーバーライドは、ほとんどの場合意図せずに行われます。いずれにしても、それは悪い習慣です。

悪い例

dart
class Base {
  Object field = 'lorem';

  Object something = 'change';
}

class Bad1 extends Base {
  @override
  final field = 'ipsum'; // LINT
}

class Bad2 extends Base {
  @override
  Object something = 'done'; // LINT
}

良い例

dart
class Base {
  Object field = 'lorem';

  Object something = 'change';
}

class Ok extends Base {
  Object newField; // OK

  final Object newFinal = 'ignore'; // OK
}

良い例

dart
abstract class BaseLoggingHandler {
  Base transformer;
}

class LogPrintHandler implements BaseLoggingHandler {
  @override
  Derived transformer; // OK
}

有効にする

#

overridden_fields ルールを有効にするには、analysis_options.yaml ファイルの linter > rules の下に overridden_fields を追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    - overridden_fields

代わりに YAML マップ構文を使用してリンター ルールを構成している場合は、linter > rules の下に overridden_fields: true を追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    overridden_fields: true