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

no_default_cases

実験的

デフォルトケースなし。

詳細

#

列挙型や列挙型のようなクラスに対する switch 文では、default 句を使用すべきではありません。

列挙型のようなクラスは、以下のような具象クラス(abstract ではないクラス)として定義されます。

  • プライベートなファクトリコンストラクタのみを持つ
  • 2つ以上の static const フィールドを持ち、それらの型が囲んでいるクラスである
  • 定義ライブラリ内にそのクラスのサブクラスが存在しない

switch 文の外でデフォルトの動作を定義してください。

悪い例

dart
  switch (testEnum) {
    case TestEnum.A:
      return '123';
    case TestEnum.B:
      return 'abc';
    default:
      return null;
  }

良い例

dart
  switch (testEnum) {
    case TestEnum.A:
      return '123';
    case TestEnum.B:
      return 'abc';
  }
  // Default here.
  return null;

有効にする

#

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

analysis_options.yaml
yaml
linter:
  rules:
    - no_default_cases

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

analysis_options.yaml
yaml
linter:
  rules:
    no_default_cases: true