什么是所有的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';