7

我正在尝试了解命名和默认导出。我有一个看似基本的要求,但我不明白如何设置。

我希望能够同时导入:

//app.js
import Mod from './my-module'
import { funcA, funcB } from './my-module'

console.log('A', Mod.funcA(), funcA()); // A a a
console.log('B', Mod.funcB(), funcB()); // A a a

当我尝试时,我得到的最接近的方法如下:

//my-module.js
export function funcA() { return 'a'; };
export function funcB() { return 'b'; };

export default {funcA, funcB}

我的麻烦是我不想重新索引默认导出中的每个函数。我只想定义我的函数,然后确保它们被导出,这样我就可以使用它们。

建议?还是我必须使用import * as Mod from './my-module';

4

2 回答 2

9

您可以省略默认导出并使用 import as 语法:

//app.js
import * as Mod from './my-module'
import { funcA, funcB } from './my-module'

console.log('A', Mod.funcA(), funcA()); // A a a
console.log('B', Mod.funcB(), funcB()); // B b b
//my-module.js
export function funcA() { return 'a'; };
export function funcB() { return 'b'; };
于 2016-04-12T10:10:26.173 回答
5

使用以下命令导入整个模块的内容* as name

import * as Mod from './my-module';

然后使用解构将它们分配给单独的常量:

const { funcA, funcB } = Mod;

对于导出,只需使用命名的导出:

export function funcA() { return 'a'; };
export function funcB() { return 'b'; };
于 2016-04-12T10:10:12.197 回答