如何“隐式导出整个模块”?

时间:2019-05-23 14:07:33

标签: javascript ecmascript-6 es6-modules

以下是a section(来自MDN对JavaScript import语句的引用(更加强调):

  

从模块导入单个导出

     

给出从模块myExport导出的名为my-module的对象或值,或者 隐式(因为已导出整个模块) 或显式(使用export语句),这会将myExport插入当前作用域。

     
import {myExport} from '/modules/my-module.js';

我知道从模块明确(使用export语句导出对象或值意味着什么,但是如何隐式导出它们 < / em>(使用export语句隐含 )?导出“整个模块”是什么意思?

2 个答案:

答案 0 :(得分:1)

我认为此声明的措词有些混乱,但前提是我理解正确。我认为“显式”的意思是明确地命名为“ ,例如

export { foo };
// or others
export var foo;
export function foo(){}
export class foo {}
export { foo } from "./foo.js";

隐式将是未明确命名的名称,例如

export * from "./foo.js";

在那里做什么

import { foo } from "./mod.js";

只要modfoo文件中重新导出foo.js,就可以工作。

答案 1 :(得分:-1)

让它如此

  1. 给出一个名为myExport的对象或值,该对象或值已从模块隐式导出(因为已导出整个模块)

  1. 给出一个名为myExport的对象或值,该对象或值已从模块中显式导出(使用export语句)

所以我可以像这样导出对象或功能

// ./modules/my-module.js
export default UserApi = {
  myExport: function() {
   console.log(please make api call)
  }
}


// ./otherfile.js
import {myExport} from '/modules/my-module.js';

我从不显式导出myExport,但是可以导入myExport而无需导入我显式导出的UserApi