invocation_of_extension_without_call
扩展 '{0}' 没有定义 'call' 方法,因此重载不能在调用中使用。
描述
#当使用扩展重载来调用函数,但扩展没有声明 call 方法时,分析器会产生此诊断。
示例
#以下代码会产生此诊断,因为扩展 E 没有定义 call 方法
dart
extension E on String {}
void f() {
E('')();
}常见修复
#如果扩展打算定义一个 call 方法,那么就声明它
dart
extension E on String {
int call() => 0;
}
void f() {
E('')();
}如果被扩展的类型定义了 call 方法,那么移除扩展重载。
如果 call 方法没有定义,那么重写代码,使其不调用 call 方法。