跳到主要內容

extension_as_expression

擴充套件 '{0}' 不能用作表示式。

描述

#

當擴充套件的名稱在表示式中使用,而不是用於擴充套件覆蓋或限定對擴充套件靜態成員的訪問時,分析器會生成此診斷。因為類定義了一個型別,類的名稱可以用來引用表示類型別的 Type 例項。而擴充套件則不定義型別,也不能用作型別字面量。

示例

#

以下程式碼會產生此診斷,因為 E 是一個擴充套件:

dart
extension E on int {
  static String m() => '';
}

var x = E;

常見修復方法

#

將副檔名稱替換為可以引用的名稱,例如在擴充套件上定義的靜態成員

dart
extension E on int {
  static String m() => '';
}

var x = E.m();