跳到主要内容

extension_override_argument_not_assignable

扩展覆盖 '{0}' 的参数类型无法赋值给被扩展的类型 '{1}'。

描述

#

当扩展覆盖的参数无法赋值给该扩展所扩展的类型时,分析器会生成此诊断。

示例

#

以下代码会生成此诊断,因为 3 不是 String 类型

dart
extension E on String {
  void method() {}
}

void f() {
  E(3).method();
}

常见修复方法

#

如果您使用的是正确的扩展,则将参数更新为正确的类型

dart
extension E on String {
  void method() {}
}

void f() {
  E(3.toString()).method();
}

如果存在适用于该参数类型的其他扩展,则可以替换扩展的名称,或者解开参数以便找到正确的扩展。