Probando módulos de TypeScript sin exports
Estoy trabajando en un entorno heredado y tengo archivos de Typescript que contienen módulos o/y clases
class SomeClass {
...
}
module AndAModule {
export namespace NestedNamespace {
...
}
}
Observe la falta de la palabra clave "export" en los módulos/clases de nivel superior.
Me gustaría probar funciones en el "NestedNamespace" usando la biblioteca Jest. Sin embargo, cuando importo el archivo de Typescript en un archivo de prueba:
var service = require("/path/to/file/SomeService.ts")
No tengo acceso ni a una clase ni a un módulo definidos en el archivo SomeService.ts. Si agrego la palabra clave "export" antes del módulo y la clase, puedo acceder a ellos a través del objeto devuelto por require, sin embargo, esto rompe todo el entorno y otros archivos, ya que después de esto, el módulo y la clase no están presentes en el archivo outFile generado por TypeScript.
¿Cómo puedo importar los módulos deseados desde archivos, sin agregar ninguna declaración de exportación?
Respuesta #1
Si tienes una función que no se está exportando, entonces alguna otra función que sí se exporta, está llamando a esa función no exportada. Prueba el método exportado, y estarás probando indirectamente el no exportado.