studio - Módulos de Typescript 1.8: importe todos los archivos de la carpeta
typescript visual studio (1)
Ambas estrategias de resolución de módulos que tsc proporciona no admiten dicho comportamiento. Cuál es tu declaración de importación deseada
import * as mylib from "./source/";
lo que realmente hace es realizar controles en este orden:
1. (does package.json have a typings key? If so, import this file)
2. import * as mylib from "./source/index.ts";
3. import * as mylib from "./source/index.tsx";
4. import * as mylib from "./source/index.d.ts";
Supongo que estás usando una resolución de módulo estilo nodo aquí, que probablemente eres porque es la manera recomendada. Consulte los documentos de texto mecanografiado para obtener más detalles sobre cómo se realiza la resolución del módulo en texto mecanografiado.
Por lo general, lo que intenta lograr es crear un archivo index.d.ts
, que sirve como el punto de entrada desde el que está exportando el resto de sus módulos. Estoy usando angular2 como ejemplo: su importación común angular2 se ve así:
import { Injectable } from ''@angular/core''
core
es solo un directorio que vive dentro del directorio @angular
. Al igual que su directorio de source
. Sin embargo, en el directorio central reside un archivo index.d.ts
:
/**
* @module
* @description
* Starting point to import all public core APIs.
*/
export * from ''./src/metadata'';
export * from ''./src/util'';
export * from ''./src/di'';
....
Estoy construyendo una gran biblioteca con Typescript con como 100 archivos ts por separado. Anteriormente utilicé el módulo de exportación XXX (renombrado para exportar el espacio de nombres XXX más tarde) para todas mis clases, pero como dicen los libros, esta no es una forma recomendada, debería usar importación en su lugar.
Así que intenté importar. Esto funcionó bien:
import * as mylib from "./source/source.ts";
Pero como tengo 100 archivos, no quiero agregar una línea para todos ellos. Y quiero que todas mis clases sean accesibles a través de la variable mylib .
Así que probé esto:
import * as mylib from "./source/";
Pero tan pronto como hago esto, obtengo: No puedo encontrar el módulo ''./source/''
¿Hay alguna forma de importar todas las clases desde una carpeta con múltiples archivos con una sola línea?