一个声明中的命名和默认导出

时间:2017-12-11 10:36:46

标签: javascript es6-modules

假设我有一个库math-utils,可以导出一些函数addsubtract等。

我希望它可以像这样使用:

import { add, subtract } from 'math-utils';

add(1, 2);

但我也希望它能像这样使用:

import MathUtils from 'math-utils';

MathUtils.add(1, 2);

我可以使用这样的导出来实现这个目标:

export const add = (x, y) => x + y;

export const subtract = (x, y) => x + y;

export default {
  add, 
  subtract, 
};

如何在一个export声明中获得此行为?

2 个答案:

答案 0 :(得分:0)

您可以使用

全部导入它们
import * as MathUtils from 'math-utils';

因此,如果math-utils中有默认方法,则只需使用MathUtils.default

答案 1 :(得分:0)

请勿使用默认导出。命名导出最适合您的用例。

  

但我也希望它像对象一样可用

然后使用

import * as MathUtils from 'math-utils';
MathUtils.add(1, 2);

使用您的指定导出。