繁体   English   中英

ES6模块导出默认语法

[英]ES6 Module export default syntax

我正在使用es6-module-transpiler,esprima和JSHint以及esnext: true选项。 当我提出时,JSHint抱怨:

export default = { some: 'thing', other: 'thing' };

但是esprima在我使用时抱怨

export default { some: 'thing', other: 'thing' };

规范

export default AssignmentExpression ;

这让我觉得JSHint需要更新和esprima正确地轰炸,因为没有任务。 有人可以成为我的决定者吗?

实际上, AssignmentExpression可以是任何表达式,它是最高级别的表达式,包含所有其他表达式的表达式(请参阅规范 )。

然而,

export default = { some: 'thing', other: 'thing' };

真的不是赋值表达式,这是一个语法错误。 如果在赋值表达式中使用赋值运算符,则需要左侧和右侧。 所以像这样的东西是有效的:

export default foo = { some: 'thing', other: 'thing' };

只使用对象文字应该是正确的,因为正如我所说, AssignmentExpression可以是任何表达式。

所以Esprima似乎是错的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM