javascript - 无法导入模块的属性

标签 javascript ecmascript-6

我有一个类似的模块A

const defaults = {
   something: {...},
   somethingElse : {...}
}

export { defaults as default };

然后我像这样导入

import * as mod, { something } from 'moduleA';

mod 正确地是一个具有两个已声明属性的对象,但是 { something } 是未定义的。

知道是什么原因吗?

最佳答案

[With the module as in the question] I am importing like

import * as mod, { something } from 'moduleA';

but something is undefined

但是您的模块中没有名为 something 的导出。只有一个包含对象的默认导出。你需要做

import mod from 'moduleA';
const { something } = mod;

I have a module A that is like

const defaults = {
   something: {...},
   somethingElse : {...}
}

export { defaults as default };

但无论如何你真的不应该那样做。导出像命名空间一样的“单例”对象是 ES6 模块中的一种反模式。您应该改用命名导出:

export const something = {...};
export const somethingElse = {...};

有了这个,您最初尝试导入该模块就可以了。

关于javascript - 无法导入模块的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37208977/

相关文章:

javascript - 如何仅通过 Javascript 读取 RTMP 流?

javascript - CKEditor - 预览时只允许图像为 100% 宽度

Javascript多数组操作

javascript 内循环问题

javascript - 将父级设置为子级 - 循环引用

javascript - 需要来自导入类内部的模块

javascript - 我的滚动横幅代码哪里出了问题以使其正确滚动

javascript - 将 JS 合并到 Html 页面中

javascript - 不熟悉我遇到的这种 javascript 语法

javascript - .ejs 模板中图像的 Webpack 文件/图像加载器