Javascript “一个人是怎么做的?”;隐式导出整个模块";?
以下内容来自MDN对JavaScriptJavascript “一个人是怎么做的?”;隐式导出整个模块";?,javascript,ecmascript-6,es6-modules,Javascript,Ecmascript 6,Es6 Modules,以下内容来自MDN对JavaScriptimport语句的引用(增加了强调): 从模块导入单个导出 给定一个名为myExport的对象或值,该对象或值已从模块mymodule隐式导出(因为整个模块已导出)或显式导出(使用语句),这会将myExport插入当前范围 import {myExport} from '/modules/my-module.js'; 我知道从模块显式导出对象或值(使用export语句)意味着什么,但如何隐式导出它们(不使用export语句而隐式导出)?导出“整个模块”意
import
语句的引用(增加了强调):
从模块导入单个导出
给定一个名为myExport
的对象或值,该对象或值已从模块mymodule
隐式导出(因为整个模块已导出)或显式导出(使用语句),这会将myExport
插入当前范围
import {myExport} from '/modules/my-module.js';
我知道从模块显式导出对象或值(使用
export
语句)意味着什么,但如何隐式导出它们(不使用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
,我认为这条语句的措辞有些混乱,假设我理解正确。我认为他们所说的“显式”应该是显式命名的,例如
而隐式将是未显式命名的,如
export * from "./foo.js";
那你在干什么
import { foo } from "./mod.js";
只要
mod
从foo.js
文件重新导出foo
,就可以工作。exports.variableName=1
我认为这是语法。但我不是100%,我很想了解更多关于这个主题的知识。@FrancisLeigh:这是CommonJS模块,而不是ES6。没有export
语句,就没有ES6导出,但是,在重新导出的情况下,可能不需要显式地命名导出。SyntaxError:请求的模块'/modules/my module.js'没有提供名为'myExport'的导出是的,这是唯一合理的解释。您可能是对的,但我已经放弃了这种想法,因为它既不是mod
mod的“全部”(仅重新导出foo
的导出)或foo
的“整个”(仅导出其明确导出的内容)都不会实际导出;如果正确,则“因为整个模块已导出”语句应真正改为“因为某些模块使用export*from
语句完全重新导出”或者类似。是的,我完全同意。我注意到MDN在某个时候已经被更新,以确认这确实是他们的意图,尽管他们仍然使用相同的令人困惑的语言。
import { foo } from "./mod.js";