我正在通过Firefox导入语句。
他们已经显示了如下的某些导入语句
import defaultExport from "module-name";
import * as name from "module-name";
import { export } from "module-name";
import { export as alias } from "module-name";
import { export1 , export2 } from "module-name";
import { export1 , export2 as alias2 , [...] } from "module-name";
import defaultExport, { export [ , [...] ] } from "module-name";
import defaultExport, * as name from "module-name";
import "module-name";
但是还没有添加一些例子来帮助区分一些人,他们的例子也有点模糊。
从医生的角度来看,有很多事情对我来说没有意义。例如,名称与defaultExport有何不同?
虽然默认导出对我来说是有意义的,但名称的定义有点难以理解。
他们所作的解释:
name参数是“模块对象”的名称,它将用作引用导出的命名空间。
从上面的语法:import "module-name";
第二:
import { export as alias } from "module-name";
另外,如果我们有需要导出的多个函数
function abc1 () {
}
function abc2 () {
}
这是正确的出口方式吗?
export abc1;
export abc2;
然后,如果我们导入,我们将如何附加变量到它?像这样的陈述就是在这里出现的吗?
import { export as alias } from "module-name";
发布于 2018-07-06 18:29:24
给定此模块module-name
// module-name.js
export default function foo(){ console.log("foo");}
export function bar(){ console.log("bar");}
console.log("hello world");
考虑在node.js v9.11.1中使用node --experimental-modules some-importer.mjs
命令进行测试的以下情况
导入default export
// import defaultExport from "module-name";
import fizzbuzz from "module-name";
因此,只有默认的导出可用:
fizzbuzz
(即foo
)是可用的bar
不可用console.log(hello world)
将被运行使用*
通配符导入所有导出
import * as name from "module-name";
所有导出都可用,但附加到一个标识为name
的对象上。
foo
不可用bar
不可用name.foo
是不可用的(尽管你认为它会)name.bar
是可用的console.log(hello world)
将被运行进口已确定的出口
// import { export } from "module-name";
import { bar } from "module-name"
只有已确定的出口:
foo
不可用bar
是可用的console.log(hello world)
将被运行将已识别的导出导入为别名
// import { export as alias } from "module-name";
import { bar as mybar } from "module-name";
只有标识的导出可用,只有作为(标识的别名):
foo
不可用bar
不可用mybar
(即bar
)是可用的console.log(hello world)
将被运行导入default export
并使用*
通配符
// import defaultExport, * as name from "module-name";
import fizzbuzz, * as name from "module-name";
模块中的默认项可以引用为defaultExport
,所有其他导出项都附加到name
fizzbuzz
(即foo
)是可用的bar
不可用name.bar
是可用的console.log(hello world)
将被运行没有确定的实际进口
import "module-name";
模块已加载,但导入的模块中实际上没有可用的。这意味着该文件正在运行,但没有公开任何文件。
foo
不可用bar
不可用console.log(hello world)
将被运行发布于 2018-07-06 18:17:01
name
和defaultExport
有什么不同?
name
是一个对象,它将所有导出的值作为导出的键/值保存,但默认导出除外,该导出将在defaultExport
中。如果要从文件中导出以下内容:
export default function main() {}
export function helper1() {}
export function helper2() {}
然后可以导入main
作为默认导入:
import main from "file";
不会引进帮手的。为此,您将使用* as
import * as helpers from "file";
helpers.helper1();
然后,如果我们导入,我们将如何附加变量到它?
它们被附加到与其导出的名称相同的位置,因此只能导入上述帮助程序中的一个:
import { helper1 } from "file";
helper1();
如果您想重命名该导入,因为它是错误的/冲突的,那么as
语法就会出现:
import { helper1 as someOther } from "file";
someOther();
https://stackoverflow.com/questions/51215691
复制相似问题