跳到主要內容

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