always_specify_types
指定类型注解。
详情
#务必指定类型注解。
当指定类型未知时,避免使用 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
规则与以下规则不兼容
avoid_types_on_closure_parameters
omit_local_variable_types
omit_obvious_local_variable_types
omit_obvious_property_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
除非另有说明,否则本网站上的文档反映的是 Dart 3.7.1 版本。页面上次更新于 2025-03-07。 查看源代码 或 报告问题。