内容

省略_局部_变量_类型

省略局部变量的类型注释。

此规则从 Dart 2.0 开始可用。

此规则具有可用的 快速修复

不兼容规则: always_specify_typesspecify_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