ES6 Модуль экспорта по умолчанию синтаксис
Я использую es6-модуль-транспортер, esprima и JSHint с esnext: true
опции. JSHint жалуется, когда я положил:
export default = { some: 'thing', other: 'thing' };
Но Эсприма жалуется, когда я использую
export default { some: 'thing', other: 'thing' };
Спецификация говорит
export default AssignmentExpression ;
Это заставляет меня думать, что JSHint нуждается в обновлении, а esprima правильно бомбардирует, потому что нет назначения. Может ли кто-то быть решающим для меня здесь?
1 ответ
Фактически, AssignmentExpression может быть любым выражением, это выражение на самом верхнем уровне, которое содержит все остальные выражения (см. Спецификацию).
Тем не мение,
export default = { some: 'thing', other: 'thing' };
на самом деле это не выражение присваивания, это синтаксическая ошибка. Если вы используете оператор присваивания в выражении присваивания, то вам нужны левая и правая части. Так что что-то вроде этого будет действительным:
export default foo = { some: 'thing', other: 'thing' };
Просто использование литерала объекта должно быть правильным, потому что, как я уже сказал, выражение AssignmentExpression может быть любым выражением.
Так что, кажется, Эсприма ошибается.