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 {}