【问题标题】:module.export vs export handler in js and typescriptjs 和 typescript 中的 module.export 与导出处理程序
【发布时间】:2021-04-14 04:48:40
【问题描述】:

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

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

然后在 javascript 中导出:

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

【问题讨论】:

  • 第一个是ECMAScript模块,第二个是CommonJS模块

标签: javascript node.js typescript amazon-web-services


【解决方案1】:

请看Difference between “module.exports” and “exports” in the CommonJs Module System

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 2022-11-02
    相关资源
    最近更新 更多