module.exports={fn}是否与exports.fn=fn相同



对于作业测试,我需要创建这样的库:

// do-it.js
function doIt(smth) {}
module.exports = {
doIt,
};

但我使用的是typescript,编译后的do-it.ts文件如下所示:

// do-it.js when compiled from do-it.ts
exports.__esModule = true;
exports.doIt= exports.another = void 0;
function doIt(smth) {}
exports.doIt = doIt;
function another() {}
exports.another= another;

这两个示例的导出是否相同?

粗略地说,是的;由此产生的出口肯定是一样的。

我的意思是,如果你这样做了:

module.exports = {
doIt,
};

后来做了

module.exports = {
doSomethingElse,
};

您会遇到问题,因为第二个完全替换了以前的exports对象。

您根本不需要创建那个对象,它是在调用模块之前为您创建的。所以说真的,你可以做

exports.doIt = doIt;

然后

exports.doSomethingElse = doSomethingElse;

首先。

最新更新