跳过主内容

void_checks

向类型为 'void' 的变量赋值。

描述

#

当向类型为 void 的变量赋值时,分析器会生成此诊断消息。

无法访问此类变量的值,因此此赋值无效。

示例

#

以下代码会生成此诊断消息,因为字段 value 的类型是 void,但却为其赋了值

dart
class A<T> {
  T? value;
}

void f(A<void> a) {
  a.value = 1;
}

以下代码会生成此诊断消息,因为方法 m 中参数 p 的类型是 void,但在调用中却为其赋了值

dart
class A<T> {
  void m(T p) { }
}

void f(A<void> a) {
  a.m(1);
}

常见修复

#

如果变量类型不正确,请更改变量的类型

dart
class A<T> {
  T? value;
}

void f(A<int> a) {
  a.value = 1;
}

如果变量类型正确,请移除此赋值

dart
class A<T> {
  T? value;
}

void f(A<void> a) {}