假设我有一个大小正在增长的Angular2打字稿解决方案。我有很多小类/对象,按照最佳实践,我将每个类放在自己的文件中。
如果我需要操纵这些对象,我经常会得到这样的长导入列表:
import {Object1} from '../core-data/object1';
import {Object2} from '../core-data/object2';
import {Object3} from '../core-data/object3';
import {Object4} from '../core-data/object4';
import {Object5} from '../core-data/object5';
我希望我可以这样做:
import {Object1, Object2, Object3, Object4, Object5} from '../core-data/CORE_OBJECTS';
我尝试使用Angular团队用于CORE_DIRECTIVES
的模式,但它似乎只有通过directives
annontation上的Component
属性添加。
我真的不想捆绑它/为它制作一个新项目,因为它会让整个过程变得更难 - 它只是一些核心对象,我希望能够在没有太多麻烦的情况下进行调整
处理此问题的最佳方法是什么?
答案 0 :(得分:6)
您可以利用Angular2的export from
功能。
例如在core.objects.ts
文件中:
export {Object1} from '../core-data/object1';
export {Object2} from '../core-data/object2';
export {Object3} from '../core-data/object3';
export {Object4} from '../core-data/object4';
export {Object5} from '../core-data/object5';
然后您可以通过这种方式利用core.objects
模块;
import {
Object1, Object2, Object3, Object4, Object5
} from '../core-data/core.objects';
答案 1 :(得分:2)
没有试图劫持你的答案,只是提供了一些我发现的额外信息:
如果您在index.ts
文件夹中创建/core-data
并将其内容设为此内容:
export * from './core-terms';
然后你可以得到一个稍微简单的导入语句:
import { Object1, Object2, Object3, Object4, Object5 } from '../core-data/';
无需同时指定文件夹和包含已连接导出的文件:)
编辑:这仍然需要core-terms.ts文件包含导出。您可以使用core-terms.ts文件中的导出替换导出,这样您就不需要额外的文件了。您也可以保留它,然后随着核心数据文件夹的增长,创建更多的子分区文件并连接index.ts中的所有子文件。就这样,index.ts包含所有类,你可以在这里将子类划分为core-terms.ts core-components.ts core-whatever.ts ...