Tengo una biblioteca constante que tiene muchos archivos como la siguiente estructura:
#1 índice.ts
#2 origen/
¿Es posible importar y exportar todas las constantes de cada archivo en index.ts de modo que pueda importar en un proyecto como el siguiente?
// Imports: Constants import { constants } from '@jeff/constants-library'; console.log(constants.contact.first); console.log(constants.contact.second); console.log(constants.contact.third);¿Cuál es la forma más rápida/eficiente de exportar dinámicamente las constantes de mis archivos de biblioteca para poder importarlas a mis proyectos?
En sus archivos como contact y location , deberá marcar los valores const que desea export . Los módulos están diseñados para la encapsulación, por lo que la exportación dinámica no es realmente una opción aquí. Sin embargo, solo es cuestión de agregar la palabra clave export :
export const first = []; Después de eso, puede crear un archivo constants-library.ts o constants-library/index.ts que exporta e importa automáticamente:
import * as foo from './foo'; import * as bar from './bar'; export const constants = { foo, bar }; En este punto, suponiendo que su ruta @jeff esté configurada, su código debería funcionar como se esperaba:
import { constants } from '@jeff/constants-library'; console.log(constants.contact.first); Tenga en cuenta que esto incluirá todas las exportaciones en sus archivos, ya que TypeScript no puede decir qué constantes desea o no, solo sabe qué exportaciones ha enumerado. Como alternativa, en lugar de exportar todas sus const s individualmente, puede agruparlas en una sola export utilizando la abreviatura de objetos.
// in contact.ts and location.ts export constants = { first, second, third }; // in constant-library.ts or constant-library/index.ts import { constants as contact } from './contact'; import { constants as location } from './location'; export constants = { contact, location };