You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何从模块导入多个函数到单个对象中?

实现方案

你写的import {get, set} as moduleName from 'module-name'不是现行ECMAScript模块的标准语法,原生不支持这种写法。要满足「仅导入需要的方法、规避作用域命名冲突、不引入模块冗余内容」的需求,有两种符合标准的实现方式:

  • 手动聚合导入(最稳妥、100%按需)
    先导入你需要的指定方法,再手动挂载到自定义命名空间对象上即可,写法如下:
    import { get, set } from 'module-name'
    const moduleName = { get, set }
    
    moduleName.get()
    
    这种写法只会加载你显式声明的get、set两个方法,完全不会引入模块内的其他导出内容,调用时通过自定义对象访问属性,不会和当前作用域的同名变量产生冲突。
  • 命名空间导入(适配现代构建工具场景)
    也可以直接使用ES标准的全量命名空间导入语法:
    import * as moduleName from 'module-name'
    
    moduleName.get()
    
    不需要担心这种写法会带来冗余代码:所有主流前端构建工具(Rollup、Webpack、Vite等)都支持ES模块静态分析与Tree Shaking,只要你代码里只调用moduleName.get()、moduleName.set(),模块内其他未被引用的导出都会在构建阶段被剔除,不会打包进最终产物。

注意:目前有对应的ES语法提案在TC39流程中推进,但尚未进入正式标准,生产环境不建议使用未落地的非标准语法。

内容的提问来源于stack exchange,提问作者M G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 18:57:24