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

type_literal_in_constant_pattern

安定版
コア
修正が利用可能です

定数パターンで型リテラルを使用しないでください。

詳細

#

オブジェクトがFoo型であることをテストしたかった場合は、代わりにFoo _と記述してください。

悪い例

dart
void f(Object? x) {
  if (x case num) {
    print('int or double');
  }
}

良い例

dart
void f(Object? x) {
  if (x case num _) {
    print('int or double');
  }
}

マッチした値(Type型であると期待される値)が型リテラルFooと等しいことをテストしたい場合は、const (Foo)を使用してこのlinterを無効にすることができます。

悪い例

dart
void f(Object? x) {
  if (x case int) {
    print('int');
  }
}

良い例

dart
void f(Object? x) {
  if (x case const (int)) {
    print('int');
  }
}

有効にする

#

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

analysis_options.yaml
yaml
linter:
  rules:
    - type_literal_in_constant_pattern

linterルールを構成するためにYAMLマップ構文を使用している場合は、linter > rulesの下にtype_literal_in_constant_pattern: trueを追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    type_literal_in_constant_pattern: true