跳到主要内容

wrong_number_of_type_arguments_extension

扩展 '{0}' 声明了 {1} 个类型参数,但提供了 {2} 个类型实参。

描述

#

当使用带有类型参数的扩展并提供类型实参时,如果类型实参的数量与类型参数的数量不同,分析器就会产生此诊断信息。

示例

#

以下代码会产生此诊断信息,因为扩展 E 声明了一个类型参数 (T),但扩展覆盖提供了两个类型实参

dart
extension E<T> on List<T> {
  int get len => length;
}

void f(List<int> p) {
  E<int, String>(p).len;
}

常见修复

#

修改类型实参的数量,使其与类型参数的数量相同

dart
extension E<T> on List<T> {
  int get len => length;
}

void f(List<int> p) {
  E<int>(p).len;
}