ambiguous_import
名称 '{0}' 在库 {1} 中已定义。
描述
#当引用的名称在两个或多个导入的库中声明时,分析器会产生此诊断信息。
示例
#假设有一个定义了类(本例中的 C
)的库 (a.dart
)
dart
class A {}
class C {}
以及一个定义了同名不同类的库 (b.dart
)
dart
class B {}
class C {}
以下代码会产生此诊断信息
dart
import 'a.dart';
import 'b.dart';
void f(C c1, C c2) {}
常见修复方法
#如果某些库不需要,则移除其导入指令
dart
import 'a.dart';
void f(C c1, C c2) {}
如果该名称仍然由多个库定义,则为除一个库之外的所有导入指令添加 hide
子句
dart
import 'a.dart' hide C;
import 'b.dart';
void f(C c1, C c2) {}
如果您必须能够引用这些类型中的多个,则为每个导入指令添加前缀,并使用相应的前缀限定引用
dart
import 'a.dart' as a;
import 'b.dart' as b;
void f(a.C c1, b.C c2) {}