Jac*_*cob 11 javascript ecmascript-harmony jshint esprima
我正在使用es6-module-transpiler,esprima和JSHint以及esnext: true选项.当我提出时,JSHint抱怨:
export default = { some: 'thing', other: 'thing' };
Run Code Online (Sandbox Code Playgroud)
但是esprima在我使用时抱怨
export default { some: 'thing', other: 'thing' };
Run Code Online (Sandbox Code Playgroud)
该规范说
export default AssignmentExpression ;
这让我觉得JSHint需要更新和esprima正确地轰炸,因为没有任务.有人可以成为我的决定者吗?
Fel*_*ing 13
实际上,AssignmentExpression可以是任何表达式,它是最高级别的表达式,包含所有其他表达式的表达式(请参阅规范).
然而,
export default = { some: 'thing', other: 'thing' };
Run Code Online (Sandbox Code Playgroud)
真的不是赋值表达式,这是一个语法错误.如果在赋值表达式中使用赋值运算符,则需要左侧和右侧.所以像这样的东西是有效的:
export default foo = { some: 'thing', other: 'thing' };
Run Code Online (Sandbox Code Playgroud)
只使用对象文字应该是正确的,因为正如我所说,AssignmentExpression可以是任何表达式.
所以Esprima似乎是错的.