Varil, birkaç modülden dışa aktarımı tek bir kullanışlı modülde toplamanın bir yoludur. Varilin kendisi, diğer modüllerin seçilen dışa aktarımlarını yeniden dışa aktaran bir modül dosyasıdır.
Bir kahramanlar klasöründe üç modül hayal edin:
// heroes/hero.component.ts
export class HeroComponent {}
// heroes/hero.model.ts
export class Hero {}
// heroes/hero.service.ts
export class HeroService {}
Bir varil olmadan, bir tüketicinin üç ithalat beyanına ihtiyacı olacaktır:
import { HeroComponent } from '../heroes/hero.component.ts';
import { Hero } from '../heroes/hero.model.ts';
import { HeroService } from '../heroes/hero.service.ts';
Kahramanlar klasörüne (geleneksel olarak dizin adı verilir) bu öğelerin tümünü dışa aktaran bir varil ekleyebiliriz:
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
Artık bir tüketici, ihtiyaç duyduğu şeyi varilden ithal edebilir.
import { Hero, HeroService } from '../heroes'; // index is implied
Açısal kapsamlı paketlerin her birinin varil adında bir indeksi vardır.