混淆的 ES6 import -> export 语句

8

这段代码是有效的JavaScript代码吗?它没有报错,而且看起来能够正常工作。

export {default as Chooser} from "./chooser";

我的理解是:
  1. "./chooser" 导入 default
  2. 将第一步的结果使用 as Chooser 进行导出
这样做的目的是什么?

1
如果它能正常工作,那还有什么问题呢? - user663031
Yes - Bergi
2个回答

3

这是有效的JavaScript代码吗?

是的。

这就是发生的事情吗?

是的。


0

你的理解是正确的。

import "./chooser" 中的 default

这是正确的。被导出的默认对象是 Chooser,在导入时,你必须使用给定的名称并加上 as ...

import { Chooser } from "./chooser";

将 #1 的结果作为 Chooser 导出,这也是正确的。名称 Chooser 给默认值一个新名称并导出它。

让我来分解一下:

export {
    default as Chooser
} from "./chooser";

这个指定了被导出的文件,default as Chooser 导出默认值并命名为 Chooser。现在,在导入时:

import { Chooser } from "./chooser";

你必须指定Chooser来导入,因为你已经将其命名为默认值。


真的吗?这也是正确的,但模块将 Chooser 导出为默认值,然后在导入时,导入会找到默认导出并导入它。 我认为该模块将其导出为名称 Chooser,必须作为 import {Chooser} from './exports'; 导入。如果要重新导出默认导出,我认为您需要说 export {default} from './chooser';。另外,您答案中的 foo 是什么意思? - user663031
2
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Felix Kling
@FelixKling 我不确定我为什么要加那个,但已经移除了。谢谢你指出来! - Andrew Li
@torazaburo,我已经编辑了答案,感谢你的建设性批评! - Andrew Li

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接