如何从命名空间导出,访问默认值? [复制]

Posted

技术标签:

【中文标题】如何从命名空间导出,访问默认值? [复制]【英文标题】:How do I export from a namespace, accessing the default? [duplicate] 【发布时间】:2021-07-26 10:53:48 【问题描述】:

我有一个关于 ES6 导入模块的问题。

我尝试在我的 Three.js 代码中添加 OrbitControls。 由于 OrbitControls 是一个单独的模块,我需要在我的代码中单独导入它们,如下所示。它工作正常。

import OrbitControls from 'three-orbitcontrols'

但是,

我最初的预期是

import OrbitControls from 'three-orbitcontrols'

原因是, 据我了解,如果模块导出某些东西作为导出默认值, 我可以通过在我的“导入”代码中添加花括号来访问它们。 但是,它没有锻炼,所以我认为“三轨道控制”不会默认导出“轨道控制”。

然后我就这样尝试了

import * as Orbit from 'three-orbitcontrols'

new Orbit.OrbitControls(a,b)

然而,它也没有成功。

我误会了什么?

【问题讨论】:

【参考方案1】:

导入时使用大括号从另一个文件导入 命名导出。比如下面的链接起来:

export const foo = 'something';
import  foo  from './somefile.js';

默认导出不使用大括号:

export default 'somethingelse';
import theSomethingElse from './someOtherFile.js';

听起来OrbitControls 使用默认导出,因此在导入时应避免使用大括号。

在做

import * as Orbit from 'three-orbitcontrols'

imports everything 模块作为命名空间导出,它本质上是一个对象。要从命名空间访问默认导出,请访问其上的 default 属性:

import * as Orbit from 'three-orbitcontrols'

new Orbit.default(a,b)

(或只使用您的原始版本:import OrbitControls from 'three-orbitcontrols'

【讨论】:

以上是关于如何从命名空间导出,访问默认值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Meteor 包导出到我的应用程序的命名空间?

如何从默认命名空间发送到自定义命名空间?

Hadoop—如何查看HDFS默认的ns命名空间和所有命名空间列表

如何防止从命名空间内访问类?

TypeScript躬行记——命名空间

如何从默认 kops 命令更改 kubernetes 上下文中的默认命名空间?