javascript - js 和 typescript 中的 module.export 与导出处理程序
问题描述
打字稿中的这个导出函数有什么区别
export const handler = someWrapper(
eventHandler({
...someMiddlewares,
lambdaHandler
})
)
并在 javascript 中导出:
module.export ={
someWrapper(
eventHandler({
...someMiddlewares,
lambdaHandler
}),
)
lambdaHandler
}
解决方案
请参阅CommonJs 模块系统中“module.exports”和“exports”的区别
module
是一个带有exports
属性的纯 JavaScript 对象。exports
是一个纯 JavaScript 变量,恰好设置为module.exports
. 在文件的末尾,node.js 基本上会“返回”module.exports
到 >require
函数。在 Node 中查看 JS 文件的一种简化方法是:var module = { exports: {} }; var exports = module.exports; // your code return module.exports;
如果你在 上设置一个属性
exports
,比如exports.a = 9;
,它也会被设置module.exports.a
,因为对象在 JavaScript 中作为引用传递,这意味着如果你为同一个对象设置多个变量,它们都是同一个对象;所以 thenexports
和module.exports
是同一个对象。
但是,如果您设置exports
为新的东西,它将不再设置为module.exports
,因此exports
和module.exports
不再是同一个对象。
推荐阅读
- python - python按某个id剪切一个列表
- ecmascript-6 - HostPromiseRejectionTracker 操作有什么作用?
- scheme - 在 Scheme (Fluent) 中运行 (do ...) 内的代码与在循环外执行的代码不同
- vim - 如果 vim 的版本小于所需的目标,如何抛出异常?(.vimrc/init.vim)
- android - 如何在颤动中显示来自firestore的特定文档详细信息
- sql - 使用动态 SQL 时附近的语法不正确
- flutter - Textformfield输入文本位置不等于图标颤动
- makefile - 如何在生成文件中包含多个构建?
- python-3.x - 根据熊猫数据框的长度创建存储桶索引列表
- node.js - 如何在 Angular 8 中使用 socket.io-client 来获得确认