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 map 語法來設定 linter 規則,請在 linter > rules 下新增 always_specify_types: true
analysis_options.yaml
yaml
linter:
rules:
always_specify_types: true
除非另有說明,否則本網站上的文件反映的是 Dart 3.7.1 版本。頁面最後更新於 2025-03-07。 檢視原始碼 或 回報問題。