跳到主要内容

omit_obvious_property_types

实验性
提供修复

忽略顶层和静态变量的显而易见的类型注解。

详情

#

当类型显而易见时,不要为已初始化的顶层或静态变量添加类型注解。

不推荐

dart
final int myTopLevelVariable = 7;

class A {
  static String myStaticVariable = 'Hello';
}

推荐

dart
final myTopLevelVariable = 7;

class A {
  static myStaticVariable = 'Hello';
}

有时,推断出的类型并非您希望变量拥有的类型。例如,您可能打算稍后为其赋其他类型的值。您也可能希望显式地编写类型注解,因为初始化表达式的类型不够明显,为代码未来的读者记录此类型会有所帮助。或者,您可能希望确定一个特定类型,以便将来依赖项的更新(在附近的代码、导入中或任何地方)不会静默地改变该变量的类型,从而在使用该变量的位置引入编译时错误或运行时 Bug。在这些情况下,请继续使用您想要的类型注解该变量。

推荐

dart
final num myTopLevelVariable = 7;

class A {
  static String? myStaticVariable = 'Hello';
}

此规则是实验性的。 它正在评估中,可能会更改或移除。欢迎提供关于其行为的反馈!主要问题在此处:https://github.com/dart-lang/sdk/issues/59550。

不兼容的规则

#

omit_obvious_property_types 规则与以下规则不兼容

启用

#

要启用 omit_obvious_property_types 规则,请在您的 analysis_options.yaml 文件中的 linter > rules 下添加 omit_obvious_property_types

analysis_options.yaml
yaml
linter:
  rules:
    - omit_obvious_property_types

如果您改用 YAML map 语法配置 linter 规则,请在 linter > rules 下添加 omit_obvious_property_types: true

analysis_options.yaml
yaml
linter:
  rules:
    omit_obvious_property_types: true