【发布时间】:2017-07-23 00:30:57
【问题描述】:
我想使用一个函数来生成一个普通对象,该对象将从 ES6 模块中导出(在 Node 中运行之前使用 Babel 转译我的代码)
下面的模块是我想做的……
module_a
function generatePlainObject(param1, param2, param3) {
return {
newProp1: param1,
newProp2: param2,
newProp3: param3,
};
}
export generatePlainObject(1, 2, 3);
...所以我可以在另一个模块中使用import { newProp1, newProp2, newProp3 } from 'module_a',并轻松访问属性。
但这会引发错误 (unexpected token)。
我尝试使用扩展运算符 (...),并在导出前使用 Object.assign({}, funcResults) 并将其存储在 const 中,但它们都会弹出错误。
这甚至可能吗?我是否误解了我可以制作什么样的对象来导出?我是否必须明确输入普通对象并包含其属性?
感谢任何帮助。
【问题讨论】:
-
您使用的是哪个 JavaScript 环境,它是否支持
export? -
ES6 导入和导出是静态的,应该静态分析。是否有什么阻止您将此对象导出为默认导出?您可以使用 CJS 模块进行动态导出。
-
export {a, b, c};不是对象表达式,它是要导出的名称列表,因此不能用任意表达式替换它。
标签: javascript module ecmascript-6 babeljs