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
方法。