Я тестирую модули JavaScript, включив флаг "Экспериментальная веб-платформа" в Chrome Dev (v60, на момент написания).
Когда я пытаюсь импортировать этот модуль:
export default let foo = 10;
Я получаю это сообщение об ошибке:
Uncaught SyntaxError: Unexpected strict mode reserved word
Он отлично работает без ключевого слова по default
. И это прекрасно работает:
let a = 10;
export default a;
В MDN явно не указано, что допустимость export default...
допускается с let
, var
, const
и т.д., Но они приводят примеры с такими функциями:
export default function (…) { … }.
И переменные вроде этого:
export let name1 = …, name2 = …, …, nameN;
Вопрос. Невозможно ли в текущей спецификации экспортировать обычные переменные с ключевым словом по default
как это можно сделать с помощью функций и классов?
export
имеет строго определенный синтаксис, правильный синтаксис экспорта по умолчанию -
export default expression;
let foo = 10
не является выражением, а выражением. Он может использоваться для названного экспорта:
export let name1, name2, …, nameN;
Для имени экспорта по умолчанию не требуется.
Аналогично export default function (…) { … }
, это должно быть
export default 10;
export default 10;
! Но почему у них есть этот пример в статье MDN ?export let name1 = …, name2 = …, …, nameN;
default
это имя).