混合 Node 的 CommonJS 和 Typescript 的 ES 模块
Mix Node's CommonJS and Typescript's ES modules
我在 Node.js v10 中有一个遗留应用程序(但升级是一个选项),它使用 CommonJS 模块(需要)。
代码库是用 JS 编写的。
现在,我想重构项目的 part 并使用 TS 模块 (import/export) 和 classes.
在 Typescript 中编写它
从我的遗留 JS 代码连接那些新生成的 JS 文件(从 TS 编译)的最佳方法是什么?
假设我在 TS 中有一个 class:
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
我在 tsconfig.json.
中设置了 "module": "commonjs"
现在,我如何从我的遗产 app.js 中要求 DemoClass.js,例如调用 sayHello()?
下面的代码似乎可以工作,但是这个“默认”的东西似乎不对:
var DemoClass = require('./lib/DemoClass');
DemoClass.default.sayHello();
不使用 export default
,而是使用 export =
。
export = class DemoClass {
public static sayHello() {
console.log("Hello from demo class...");
}
}
我在 Node.js v10 中有一个遗留应用程序(但升级是一个选项),它使用 CommonJS 模块(需要)。
代码库是用 JS 编写的。
现在,我想重构项目的 part 并使用 TS 模块 (import/export) 和 classes.
在 Typescript 中编写它
从我的遗留 JS 代码连接那些新生成的 JS 文件(从 TS 编译)的最佳方法是什么?
假设我在 TS 中有一个 class:
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
我在 tsconfig.json.
中设置了 "module": "commonjs"现在,我如何从我的遗产 app.js 中要求 DemoClass.js,例如调用 sayHello()?
下面的代码似乎可以工作,但是这个“默认”的东西似乎不对:
var DemoClass = require('./lib/DemoClass');
DemoClass.default.sayHello();
不使用 export default
,而是使用 export =
。
export = class DemoClass {
public static sayHello() {
console.log("Hello from demo class...");
}
}