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;注意:使用 meta 包中的 @optionalTypeArgs 註解,API 作者可以特殊處理那些型別需要是 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_parametersomit_local_variable_typesomit_obvious_local_variable_typesomit_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