ES6 JS: синтаксис для экспорта констант при некоторой рекурсии

У меня есть следующий код, который работает:

import sequelize from 'sequelize';
let A = sequelize.define('a', {
  }, {
    classMethods: {
      someMethod(foo) {
        return A.upsert(foo);
      }
    }
  });

export default A;

Тем не менее, я хотел бы поставить export default на той же строке, что определение A для ясности. Тем не менее, так как некоторая часть A в основном называет себя, я не могу выяснить, какой правильный синтаксис может быть.

2 ответа

Решение

Ты можешь использовать

export { A as default }
const A = …; // whatever

или же

let A; // I would avoid this
export default A = …;

Там нет ярлыка, export default работает только с объявлениями функций или классов.

Короткий ответ: вы не можете.

Длинный ответ: при выполнении export default something Вы указываете, что данное значение будет экспортировано из модуля и по сути является безымянным (следовательно, default часть).

В отличие от CommonJS, у вас нет ручки для того, что вы экспортируете. То, что вы хотите сделать, эквивалентно рекурсивному вызову анонимной функции. Как ты мог сделать это без ссылки?

Другие вопросы по тегам