混合 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...");
    }
}

Playground link