首页 > 解决方案 > js 和 typescript 中的 module.export 与导出处理程序

问题描述

打字稿中的这个导出函数有什么区别

    export const handler = someWrapper(
    eventHandler({
            ...someMiddlewares,
            lambdaHandler
    })
)

并在 javascript 中导出:

                module.export ={ 
                  someWrapper(
                     eventHandler({
                    ...someMiddlewares,
                    lambdaHandler
                }),
              )
           lambdaHandler
          }

标签: javascriptnode.jstypescriptamazon-web-services

解决方案


请参阅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 中作为引用传递,这意味着如果你为同一个对象设置多个变量,它们都是同一个对象;所以 thenexportsmodule.exports是同一个对象。
但是,如果您设置exports为新的东西,它将不再设置为module.exports,因此exportsmodule.exports不再是同一个对象。


推荐阅读