ES6 JS:存在递归时用于 const 导出的语法

ES6 JS: syntax for const export when there is some recursion

我有以下有效的代码:

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

export default A;

但是,为了清楚起见,我想将 export defaultA 的定义放在同一行。但是,由于 A 的某些部分基本上是自称,所以我无法找出正确的语法。

简短的回答是:你不能。

长答案是:当执行 export default something 时,您指定将从模块中导出给定值并且本质上是无名的(因此,default 部分)。

与 CommonJS 不同,无论要导出什么,您都没有句柄。你想要做的是等同于递归调用匿名函数。没有参考资料你怎么能这样做?

您可以使用

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

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

没有捷径,export default 仅适用于函数或 class 声明。