跳到主內容

extension_override_with_cascade

擴充套件過載沒有值,因此不能用作級聯表示式的接收者。

描述

#

當擴充套件過載用作級聯表示式的接收者時,分析器會產生此診斷。級聯表示式 e..m 的值是接收者 e 的值,但擴充套件過載不是表示式並且沒有值。

示例

#

以下程式碼產生此診斷,因為 E(3) 不是表示式

dart
extension E on int {
  void m() {}
}
f() {
  E(3)..m();
}

常見修復方法

#

使用 . 而非 ..

dart
extension E on int {
  void m() {}
}
f() {
  E(3).m();
}

如果有多個級聯訪問,您需要為每個訪問複製擴充套件過載。