混合节点的 CommonJS 和 Typescript 的 ES 模块



我在Node.js v10中有一个遗留应用程序(但升级是一个选项),它使用CommonJS模块(需要)。
代码库用JS编写。现在,我想重构部分并使用TS模块(import/export)和类在Typescript中编写它。
从我的遗留JS代码中接口那些新生成的JS文件(从TS编译)的最佳方法是什么?

假设我在TS中有一个类:

export default class DemoClass {
public static sayHello() {
console.log("Hello from demo class...");
}

}

被编译成:

"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.map

我设置了"module";commonjs"在我的tsconfig.json.

现在,我如何要求DemoClass.js从我的旧的app.js,例如调用sayHello()?
下面的代码似乎可以工作,但是这个"default"事情似乎不对劲:

var DemoClass = require('./lib/DemoClass');
DemoClass.default.sayHello();

export =代替export default

export = class DemoClass {
public static sayHello() {
console.log("Hello from demo class...");
}
}

操场上联系

最新更新