跳到主要内容

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