跳到主要内容

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) {}