ES6 导出函数的结果

ES6 export the result of a function

我正在尝试导出 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 似乎没有涵盖以上情况。

export default ...

您正在导出单个对象、Class、函数等

export (Object, Class, Function) ...

您要导出许多对象、Classes、函数等,因此您必须为其指定一个名称。

第一个例子有点像你在学校教书,有一个学生。您知道那个学生是谁以及如何称呼他,因为他是那里唯一的学生。然而,第二个例子就像教一个有很多学生的 class,你需要某种类型的命名来调用正确的学生。

你可以做到

const aArg = 'foo'
const bArg = 'bar'

export const a = func(aArg);
export const b = func(bArg);

命名导出需要一个变量名来导出,它们不能导出任意表达式结果。