跳到主要內容

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;

注意:使用 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 規則與以下規則不相容

啟用

#

要啟用 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