`export default let foo = ...`throws“Unexpected strict mode reserved word”

时间:2017-06-02 07:38:06

标签: javascript module ecmascript-6

我正在通过在Chrome Dev中启用“实验性Web平台”标志来尝试JavaScript模块(v60,在撰写本文时)。

当我尝试导入此模块时:

export default let foo = 10;

我收到此错误消息:

Uncaught SyntaxError: Unexpected strict mode reserved word

没有default关键字,它可以正常工作。这也很好用:

let a = 10;
export default a;

MDN未明确说export default ...letvar等允许使用const符号,但他们确实提供了示例这样的功能:

export default function (…) { … }.

这样的变量:

export let name1 = …, name2 = …, …, nameN;

问题:当前规范是否无法使用default关键字导出常规变量,这可以通过函数和类来完成?

1 个答案:

答案 0 :(得分:3)

exportstrictly defined syntax,默认导出的正确语法是

export default expression;

let foo = 10不是表达而是声明。它可用于命名导出:

export let name1, name2, …, nameN;

默认情况下,不需要导出名称。

export default function (…) { … }类似,它应该是

export default 10;