JavaScript - 导入/导出&解构

时间:2017-08-31 06:19:12

标签: javascript object module redux destructuring

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

我知道模块不是对象文字,但是我实际上无法导入然后导出动作似乎很奇怪。从我到目前为止的尝试来看,您似乎必须直接从导入导出。

如果目前还没有解决方案,那么未来的任何提案是否有人都知道?

// index.js

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

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

更新

由于显然无法进行显式导入/导出,因此我决定采用一致性,使我的选择器对象成为常规导出而不是默认导出,然后直接从所有三个导入导出。

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

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

1 个答案:

答案 0 :(得分:1)

怎么样:

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

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

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

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