跳至主要內容

prefer_typing_uninitialized_variables

未初始化的欄位應具有顯式的型別註解。

未初始化的變數應具有顯式的型別註解。

描述

#

當一個沒有初始化器的變數沒有顯式型別註解時,分析器會產生此診斷。

如果沒有型別註解或初始化器,變數將具有 dynamic 型別,這允許將任何值賦給該變數,從而經常導致難以識別的 Bug。

示例

#

以下程式碼會產生此診斷,因為變數 r 既沒有型別註解也沒有初始化器。

dart
Object f() {
  var r;
  r = '';
  return r;
}

常見修復

#

如果變數可以初始化,則新增一個初始化器。

dart
Object f() {
  var r = '';
  return r;
}

如果變數不能初始化,則新增一個顯式的型別註解。

dart
Object f() {
  String r;
  r = '';
  return r;
}