目次

ローカル変数の型省略

ローカル変数の型注釈を省略します。

このルールはDart 2.0以降で利用可能です。

このルールにはクイックフィックスが利用可能です。

互換性のないルール: always_specify_types, specify_nonobvious_local_variable_types

詳細

#

しないでください 初期化されたローカル変数に冗長な型注釈を付けないでください。

ローカル変数、特に関数が小さくなる傾向がある最近のコードでは、スコープが非常に小さくなっています。型を省略することで、読者の注意は、より重要な変数の_名前_とその初期値に集中します。

悪い例

dart
List<List<Ingredient>> possibleDesserts(Set<Ingredient> pantry) {
  List<List<Ingredient>> desserts = <List<Ingredient>>[];
  for (final List<Ingredient> recipe in cookbook) {
    if (pantry.containsAll(recipe)) {
      desserts.add(recipe);
    }
  }

  return desserts;
}

良い例

dart
List<List<Ingredient>> possibleDesserts(Set<Ingredient> pantry) {
  var desserts = <List<Ingredient>>[];
  for (final recipe in cookbook) {
    if (pantry.containsAll(recipe)) {
      desserts.add(recipe);
    }
  }

  return desserts;
}

推論された型が、変数に持たせたい型ではない場合があります。たとえば、後で他の型の値を代入するつもりかもしれません。その場合は、目的の型を注釈として変数に付けてください。

良い例

dart
Widget build(BuildContext context) {
  Widget result = Text('You won!');
  if (applyPadding) {
    result = Padding(padding: EdgeInsets.all(8.0), child: result);
  }
  return result;
}

使用方法

#

omit_local_variable_typesルールを有効にするには、analysis_options.yamlファイルのlinter > rulesの下にomit_local_variable_typesを追加します。

analysis_options.yaml
yaml
linter:
  rules:
    - omit_local_variable_types