什么是所有的index.ts用于?

我一直在寻找一些种子项目,所有组件似乎都有一个index.ts,从那个组件中导出*。 我找不到任何地方它实际用于什么?

例如https://github.com/mgechev/angular2-seed/tree/master/src/client/app/%2Bhome

谢谢

https://angular.io/docs/ts/latest/guide/glossary.html Barrel

桶是将来自多个模块的输出汇总到单个便利模块中的一种方式。 桶本身是一个模块文件,重新导出其他模块的选定的出口。

想象一个英雄文件夹中的三个模块:

 // heroes/hero.component.ts export class HeroComponent {} // heroes/hero.model.ts export class Hero {} // heroes/hero.service.ts export class HeroService {} 

没有桶,消费者需要三个import报表:

 import { HeroComponent } from '../heroes/hero.component.ts'; import { Hero } from '../heroes/hero.model.ts'; import { HeroService } from '../heroes/hero.service.ts'; 

我们可以添加一个桶到英雄文件夹(称为索引按照惯例),导出所有这些项目:

 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需要的东西。

 import { Hero, HeroService } from '../heroes'; // index is implied 

Angular作用域包每个都有一个名为index的桶。

另请参阅Angular 2 DI错误 – EXCEPTION:无法parsing所有参数

index.ts是类似index.js在nodejs或index.html是网站托pipe。

所以当你import {} from 'directory_name'import {} from 'directory_name'它会在指定的目录中查找index.ts ,并导入那里的任何东西。

例如,如果你有calculator/index.ts作为

 export function add() {...} export function multiply() {...} 

你可以做

 import { add, multiply } from './calculator';