Tengo una aplicación heredada en Node.js v10 (pero la actualización es una opción) que usa módulos CommonJS (requeridos).
El código base está escrito en JS.
Ahora, quiero refactorizar parte del proyecto y escribirlo en Typescript usando módulos TS (importar/exportar) y clases.
¿Cuál es la mejor manera de conectar esos archivos JS recién generados (compilados desde TS) desde mi código JS heredado?
Digamos que tengo una clase en TS:
export default class DemoClass { public static sayHello() { console.log("Hello from demo class..."); }}
que se compila a:
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var DemoClass = /** @class */ (function () { function DemoClass() { } DemoClass.sayHello = function () { console.log("Hello from demo class..."); }; return DemoClass; }()); exports.default = DemoClass; //# sourceMappingURL=DemoClass.js.mapHe configurado "módulo": "commonjs" en mi tsconfig.json.
Ahora, ¿cómo requiero que DemoClass.js de mi app.js heredada y, por ejemplo, invoque sayHello()?
El siguiente código parece funcionar, pero esto "predeterminado" no parece correcto:
var DemoClass = require('./lib/DemoClass'); DemoClass.default.sayHello();En lugar de usar export default , use export = .
export = class DemoClass { public static sayHello() { console.log("Hello from demo class..."); } }