跳到主要内容

generic_method_type_instantiation_on_dynamic

类型为 'dynamic' 的接收者的方法 tear-off 不能带有类型参数。

描述

#

当从类型为 dynamic 的接收者上 tear off 实例方法,并且该 tear off 包含类型参数时,分析器会生成此诊断。由于分析器无法知道该方法有多少个类型参数,或者是否有任何类型参数,因此无法验证类型参数是否正确。因此,不允许使用类型参数。

示例

#

以下代码会生成此诊断,因为 p 的类型是 dynamic,并且 m 的 tear off 具有类型参数

dart
void f(dynamic list) {
  list.fold<int>;
}

常见修复方法

#

如果您可以使用比 dynamic 更具体的类型,请更改接收者的类型

dart
void f(List<Object> list) {
  list.fold<int>;
}

如果您不能使用更具体的类型,请移除类型参数

dart
void f(dynamic list) {
  list.cast;
}