extension_type_inherited_member_conflict
扩展类型“{0}”从实现的类型中拥有多个名为“{1}”的不同成员。
描述
#当扩展类型实现两个或更多其他类型,并且其中至少两个类型声明了同名成员时,分析器会生成此诊断信息。
示例
#以下代码会生成此诊断信息,因为扩展类型 C
同时实现了 A
和 B
,并且两者都声明了一个名为 m
的成员
dart
class A {
void m() {}
}
extension type B(A a) {
void m() {}
}
extension type C(A a) implements A, B {}
常见修复方法
#如果扩展类型不需要实现列出的所有类型,则移除除一个之外所有引入冲突成员的类型
dart
class A {
void m() {}
}
extension type B(A a) {
void m() {}
}
extension type C(A a) implements A {}
如果扩展类型需要实现列出的所有类型,但你可以重命名这些类型中的成员,则为冲突成员指定唯一的名称
dart
class A {
void m() {}
}
extension type B(A a) {
void n() {}
}
extension type C(A a) implements A, B {}