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

網羅的でないスイッチ

型 '{0}' は、'{1}' に一致しないため、スイッチケースで網羅的に一致していません。

説明

#

アナライザーは、switch 式に、それを通過する可能性のある値の 1 つ以上のケースが欠落している場合に、この診断を生成します。

#

以下のコードは、スイッチ式に値 E.three のケースがないため、この診断を生成します。

dart
enum E { one, two, three }

String f(E e) => switch (e) {
    E.one => 'one',
    E.two => 'two',
  };

一般的な修正

#

欠落している値がスイッチ式にとって明確に意味を持つ場合は、一致しない各値に対してケースを追加してください。

dart
enum E { one, two, three }

String f(E e) => switch (e) {
    E.one => 'one',
    E.two => 'two',
    E.three => 'three',
  };

欠落している値に一致する必要がない場合は、単純なデフォルトを返すワイルドカードパターンを追加してください。

dart
enum E { one, two, three }

String f(E e) => switch (e) {
    E.one => 'one',
    E.two => 'two',
    _ => 'unknown',
  };

ワイルドカードパターンは、将来型に追加されたすべての値を処理することに注意してください。コンパイラが、新しく追加された型を考慮して switch を更新する必要がある場合に警告する機能は失われます。