redeclare_on_non_redeclaring_member
成员 {0} 未重新声明超接口中声明的 {0}。
描述
#当扩展类型的某个成员使用 `@redeclare` 进行注解,但其实现的接口中没有同名成员时,分析器会生成此诊断。
示例
#以下代码会生成此诊断,因为扩展类型 `E` 中声明的成员 `n` 使用了 `@redeclare` 注解,但 `C` 没有名为 `n` 的成员
dart
import 'package:meta/meta.dart';
class C {
void m() {}
}
extension type E(C c) implements C {
@redeclare
void n() {}
}
常见修复方法
#如果带注解的成员名称正确,则移除注解
dart
class C {
void m() {}
}
extension type E(C c) implements C {
void n() {}
}
如果带注解的成员旨在替换实现的接口中的成员,则更改带注解成员的名称以匹配被替换的成员
dart
import 'package:meta/meta.dart';
class C {
void m() {}
}
extension type E(C c) implements C {
@redeclare
void m() {}
}