ejemplos curso cli angular

curso - angular wikipedia



¿Para qué se usan todos los index.ts? (3)

He estado mirando algunos proyectos semilla y todos los componentes parecen tener un index.ts que exporta * desde ese componente. ¿No puedo encontrar en ninguna parte para qué se usa realmente?

Por ejemplo, https://github.com/mgechev/angular2-seed/tree/master/src/client/app/%2Bhome

Gracias


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

Un barril es una forma de acumular exportaciones de varios módulos en un solo módulo de conveniencia. El barril en sí es un archivo de módulo que reexporta exportaciones seleccionadas de otros módulos.

Imagine tres módulos en una carpeta de héroes:

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

Sin un barril, un consumidor necesitaría tres declaraciones de importación:

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

Podemos agregar un barril a la carpeta de héroes (llamado índice por convención) que exporta todos estos elementos:

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

Ahora un consumidor puede importar lo que necesita del barril.

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

Los paquetes de ámbito angular tienen un barril llamado índice.

Ver también Angular 2 DI Error - EXCEPCIÓN: No se pueden resolver todos los parámetros


index.ts es similar index.js en nodejs o index.html es alojamiento de sitios web.

Entonces, cuando diga import {} from ''directory_name'' index.ts import {} from ''directory_name'' buscará index.ts dentro del directorio especificado e importará lo que se exporte allí.

Por ejemplo, si tiene calculator/index.ts como

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

Tu puedes hacer

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


index.ts nos ayuda a mantener todo lo relacionado y no necesitamos preocuparnos por el nombre del archivo fuente.

Podemos importar todo usando el nombre de la carpeta de origen.

import { getName, getAnyThing } from ''./util'';

Aquí util es el nombre de la carpeta, no el nombre del archivo que tiene index.ts que reexporta los cuatro archivos.

export * from ''./util1''; export * from ''./util2''; export * from ''./util3''; export * from ''./util4'';