JavaScript - import/export & 解构

JavaScript - import/export & destructuring

有没有办法合并这两个导出语句?

我知道模块不是对象字面量,但我不能在这里实际导入和导出动作似乎很奇怪。从我到目前为止的尝试来看,您似乎必须直接从导入中导出。

如果目前没有可用的解决方案,是否有任何人知道的未来提案?

// index.js

import reducer from './reducer';
import selectors from './selectors';

export * from './actions';
export { reducer as default, selectors };

更新

由于显式 import/export 似乎不可能,我决定满足于一致性,使我的选择器反对常规导出而不是默认导出,然后直接从所有三个导入中导出.

export * from './actions';
export * from './selectors';
export { reducer as default } from './reducer';

不过,我仍然对原始问题的解决方案感兴趣。

怎么样:

export { reducer as default } from './reducer';
export * from './selectors';
export * from './actions';

也许不是100%你想要的,但还是少了一行代码。


但实际上您可以使用 CJS 进行解构。这样的事情应该有效:

exports = {
  default: require('./reducer').reducer,
  selectors: require('./selectors'),
  ...require('./actions')
};