Dart 有导入别名吗?
Posted
技术标签:
【中文标题】Dart 有导入别名吗?【英文标题】:Does Dart have import alias? 【发布时间】:2019-05-13 11:35:28 【问题描述】:在将文件导入 dart 文件时,我发现自己编写了繁琐的代码,如下所示:
import '../../constants.dart';
我想知道是否有任何方法可以为特定文件夹创建别名,例如:
import '@shared/constants.dart';
谢谢, 哈维。
【问题讨论】:
这不是别名,但在 Flutter 中可以进行一次导入,其中包括一些不同的导入。也许它可以帮助缩短您的进口时间 【参考方案1】:Dart 不允许您重命名导入的标识符,但它允许您指定导入前缀
import '../../constants.dart' as foo;
...
foo.ImportedClass foo = foo.ImportedClass();
它还允许过滤导入的标识符,如
import '../../constants.dart' show foo hide bar;
另见
https://www.dartlang.org/guides/language/language-tour#libraries-and-visibility What is the difference between "show" and "as" in an import statement?桶文件也可以使导入更容易,例如
lib/widgets/widgets.dart
export 'widget1.dart';
export 'widget2.dart';
export 'widget3.dart';
export 'widget4.dart';
lib/pages/page1.dart
import '../widgets/widgets.dart';
Widget build(BuildContext context) => Widget1();
【讨论】:
这不是我们要求的 我明白了。不,没有这样的事情。您可以使用package:my_package/...
导入,但通常不会更短。
正如@RémiRousselet 评论的那样,我会选择那个解决方案。干杯伙计们:D
我只想说声谢谢。在我学习 Dart / Flutter 大约 3 个月的时间里,我很容易从您对 STO 上的 Dart / Flutter 主题的回答中了解一些基本概念。【参考方案2】:
没有。 Dart 没有导入别名。
但是你有绝对的进口来弥补它:
import 'package:my_lib/shared/constants.dart
这将导入文件/lib/shared/constants.dart
【讨论】:
值得注意的是,my_lib
等于 pubspec.yaml 中项目的 name
。以上是关于Dart 有导入别名吗?的主要内容,如果未能解决你的问题,请参考以下文章