跳至主要內容

always_specify_types

Stable
Fix available

指定類型註解。

詳細資訊

#

來自 flutter repo 的風格指南

務必 指定類型註解。

當指定類型未知,以及使用會省略類型註解的簡寫時,請避免使用 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 map 語法來設定 linter 規則,請在 linter > rules 下新增 always_specify_types: true

analysis_options.yaml
yaml
linter:
  rules:
    always_specify_types: true