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();