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