跳到主要内容

always_specify_types

稳定版
修复可用

指定类型注解。

详情

#

来自 flutter 仓库的风格指南

务必指定类型注解。

当指定类型未知时,避免使用 var 和省略类型注解的简写形式。如果要明确表示类型未知,请使用 dynamic。如果要明确表示需要一个实现了 ==hashCode 的对象,请使用 Object

错误示例

dart
var foo = 10;
final bar = Bar();
const quux = 20;

正确示例

dart
int foo = 10;
final Bar bar = Bar();
String baz = 'hello';
const int quux = 20;

注意:API 作者可以使用 meta 包中的 @optionalTypeArgs 注解来特殊处理类型参数,这些类型参数的类型需要是 dynamic,但其声明应被视为可选。例如,假设您有一个 Key 对象,您希望将其类型参数视为可选。使用 @optionalTypeArgs 看起来像这样

dart
import 'package:meta/meta.dart';

@optionalTypeArgs
class Key<T> {
 ...
}

void main() {
  Key s = Key(); // OK!
}

不兼容的规则

#

always_specify_types 规则与以下规则不兼容

启用

#

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

analysis_options.yaml
yaml
linter:
  rules:
    - always_specify_types

如果您改为使用 YAML 映射语法来配置 linter 规则,请在 linter > rules 下添加 always_specify_types: true

analysis_options.yaml
yaml
linter:
  rules:
    always_specify_types: true