ES6导出现有对象

时间:2017-12-06 10:55:49

标签: javascript ecmascript-6

我怎么写

export { function1, function2 };

但我不能写

const funcs = { function1, function2 };
export funcs;

它在语义上是不是一样的东西?

有没有办法从一个对象导出所有属性而不是一个一个地列出它们?我希望能够整个导入模块(即import Utils from './utils')和单个函数(import { function1 } from './util'),但它不会让我使用我的默认导出对象进行正常导出:

const Util = {
   ...
};

export ???; // <- what do I put here? do I really have to list every field in Util?
export default Util;

1 个答案:

答案 0 :(得分:3)

export { function1, function2 };不会导出对象。它是

的简写
export {
  function1 as function1,
  function2 as function2
};

确实将function1function2变量从模块范围导出为名为exports。

  

有没有办法从一个对象导出所有属性而不是一个一个地列出它们?

没有。不要以对象开头,而是单独导出函数(使用命名的export function …(…) {…}语法)。不要创建const Utils = {…}

  

我希望能够整体导入模块(即import Utils from './utils'

您不需要默认导出中的对象。只需导入模块命名空间对象:

import * as Utils from './utils';