桶是一种将出口从多个模块汇总到单个便捷模块的方法。桶本身是一个模块文件,可重新导出其他模块的选定导出。
想象一下英雄文件夹中的三个模块:
// heroes/hero.component.ts
export class HeroComponent {}
// heroes/hero.model.ts
export class Hero {}
// heroes/hero.service.ts
export class HeroService {}
没有桶,消费者将需要三个导入语句:
import { HeroComponent } from '../heroes/hero.component.ts';
import { Hero } from '../heroes/hero.model.ts';
import { HeroService } from '../heroes/hero.service.ts';
我们可以将桶添加到heroes文件夹(按惯例称为索引)中,以导出所有这些项目:
export * from './hero.model.ts'; // re-export all of its exports
export * from './hero.service.ts'; // re-export all of its exports
export { HeroComponent } from './hero.component.ts'; // re-export the named thing
现在,消费者可以从桶中进口所需的东西。
import { Hero, HeroService } from '../heroes'; // index is implied
每个Angular作用域包都有一个名为index的桶。