跳到主要內容

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