Considere el siguiente archivo:
/** myFile.ts **/ import something from 'something'; /** ... other imports here ... **/ export enum statuses = { 100 = "ok" 200 = "false" }; export default class Model { .... } Este es un modelo ORM ficticio, que se usa en el back-end. Ahora, lo que me gustaría lograr es usar parte de él (específicamente la enum ) también en el front-end (que tiene una base de código completamente separada, con sus propios node_modules y dependencias) pero si trato de importar la enum de este archivo, las dependencias del complemento something también se están evaluando e importando, y mi código falla, ya que esa dependencia no es parte de las dependencias de los códigos front-end.
¿Hay alguna forma de realizar una importación en un archivo javascript, SIN evaluar las dependencias y otra parte del código? (con el riesgo conocido de que puede fallar si trato de importar algo que necesitaría esas dependencias)
Para JavaScript, la respuesta es "no", y estoy 99% seguro de que eso es cierto cuando TypeScript también maneja las importaciones.
Pero es fácil de arreglar: coloque la enum en su propio módulo:
statuses.ts :
export enum statuses = { 100 = "ok" 200 = "false" }; El otro proyecto puede importar desde eso, en lugar de desde myFile.ts .
Si lo desea, lo hace para que no tenga que actualizar el código que usa myFile.ts para usar ese módulo separado, al volver a exportarlo en myFile.ts :
export { statuses } from "./path/to/statuses.js"; O si necesita usar statuses en myFile.ts (que no puede con lo anterior):
import { statuses } from "./path/to/statuses.js"; export { statuses }; De cualquier manera, el código que estaba import Modal, { statuses } from "./myFile.js" sigue funcionando.