在不知道分配名称的情况下访问所有导入

时间:2019-07-17 16:57:58

标签: javascript import scoping es-module

是否可以访问由 all 导入语句分配给变量的所有值,而无需使用由这些import语句分配的变量名? >

x_train

想像一下上面列出的500个导入的列表,但是假设变量名不像上面那样可预测。

在“导入这些导入的模块”的范围内,可以像DEF CDE ABC这样访问所有值(在所有导入期间“分配给变量的变量”),而不是使用变量访问每个值名字?

我意识到我可以手动将每个模块变量添加到这样的数组中:

import { module1 } from './module1.mjs';
import { module2 } from './module2.mjs';
// . . .
import { module500 } from './module500.mjs';

但是,我希望ecmascript已经有一个模块级作用域对象(有点像consumingModule.imports[index]),在那里可以通过数组访问所有导入的值,而不必显式地指定每个值就像我正在创建ary一样,使用变量名。

2 个答案:

答案 0 :(得分:1)

使用Object.keys是否可行:

enter image description here

https://codesandbox.io/s/pedantic-microservice-v2z27

答案 1 :(得分:1)

大多数情况下,您无法以编程方式通过导入执行操作;直到他们完成动态导入; ECMAScript ES2020; v8.dev/features/dynamic-import

但是您可以使用require进行程序化的操作。如果您不反对requireimport,并且可以全盘控制模块的使用方式,则可以针对所需内容创建自己的实现。

enter image description here

https://codesandbox.io/s/pedantic-microservice-v2z27

相关问题