在转换为javascript时,Google Dart如何处理命名空间/包?

时间:2017-01-17 16:38:54

标签: dart

我可以说两个游戏项目:动物园1和动物园2.两个都有一个名为animal的类。为了避免两个具有相同名称的类之间的冲突,我将它们包装在函数中。 Dart如何处理这种情况?通过包或库?用作命名空间的主类?如果是这样,那么它如何将它们转换为javascript?

1 个答案:

答案 0 :(得分:5)

Dart没有名称空间。您可以使用导入前缀

import 'package:zoo1/zoo1.dart' as zoo1;
import 'package:zoo2/zoo2.dart' as zoo2;

main() {
  print(new zoo1.Animal());
  print(new zoo2.Animal());
}

您也可以仅为其中一个

使用前缀
import 'package:zoo1/zoo1.dart';
import 'package:zoo2/zoo2.dart' as zoo2;

main() {
  print(new Animal());
  print(new zoo2.Animal());
}

如果您要同时导入这两个,但只想使用Animal中的zoo2,那么您可以隐藏一个

import 'package:zoo1/zoo1.dart' hide Animal;
import 'package:zoo2/zoo2.dart';

main() {
  print(new Animal()); // uses Animal from zoo2 
}

我认为对JS来说,他们总是使用一些前缀来消除歧义。