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 default
与 A
的定义放在同一行。但是,由于 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 声明。
我有以下有效的代码:
import sequelize from 'sequelize';
let A = sequelize.define('a', {
}, {
classMethods: {
someMethod(foo) {
return A.upsert(foo);
}
}
});
export default A;
但是,为了清楚起见,我想将 export default
与 A
的定义放在同一行。但是,由于 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 声明。