我使用es6-module-transpiler,esprima和JSHint与esnext:true选项. JSHint抱怨当我说:
export default = { some: 'thing',other: 'thing' };
但是esprima在我使用时抱怨
export default { some: 'thing',other: 'thing' };
spec说
export default AssignmentExpression ;
这让我认为JSHint需要更新,esprima正在被轰炸,因为没有任务.有人可以成为我的决定者吗?
解决方法
实际上,AssignmentExpression可以是任何表达式,它是最顶层的表达式,包含所有其他表达式的表达式(参见
spec).
然而,
export default = { some: 'thing',other: 'thing' };
真的不是一个赋值表达式,这是一个语法错误.如果您在赋值表达式中使用赋值运算符,则需要左侧和右侧.所以这样的事情是有效的:
export default foo = { some: 'thing',other: 'thing' };
只要使用对象字面值就应该是正确的,因为正如我所说,一个AssignmentExpression可以是任何表达式.
所以Esprima似乎是错误的.