我正在尝试在ES6中导出函数的结果。该功能并不重要 - 以下示例适用于:const func = input => input
这有效:
const a = 'foo'
const b = 'bar'
export default {
a: func(a),
b: func(b)
}
然而这些错误:SyntaxError: Unexpected token, expected ,
:
export {
a: func(a),
b: func(b)
}
也:
export {
func(a) as a,
func(b) as b
}
你能解释一下原因吗? This似乎不包括上述情况。
答案 0 :(得分:4)
你可以做到
const aArg = 'foo'
const bArg = 'bar'
export const a = func(aArg);
export const b = func(bArg);
命名导出需要输出变量名称,它们无法导出任意表达式结果。
答案 1 :(得分:1)
export default ...
您正在导出单个对象,类,函数等
export (Object, Class, Function) ...
您正在导出许多对象,类,函数等,因此您必须将其指定为名称。
第一个例子有点像你在学校教一个学生。你知道那个学生是谁以及如何打电话给他,因为他是那里唯一的学生。然而,第二个例子就像教授一个有很多学生的课程,你需要某种类型的命名来呼叫正确的学生。