跳至主要内容

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;
}