在nodejs中是否有来自'module'的import *?

时间:2017-12-25 00:54:53

标签: node.js

我知道有import {thing} from 'module'const {thing} = require('module'),我也可以const thing = require('thing')使用thing.method(),但我可以通过任何可用的技巧导入所有模块中的导出(python执行import * from 'lib'的方式),这样我就可以调用method()而不在导入中指定它?

2 个答案:

答案 0 :(得分:2)

可以使用语法

从模块导入所有导出
import * as Utils from 'utils';

这将创建一个名为Utils的对象,它将utils模块的所有导出作为其属性。

在JS中,必须在该范围内显式声明范围变量。对未明确声明的变量的任何引用都假定为全局名称空间的属性。这就是像import * from 'module'这样的语法不能像在Python中那样工作的原因。由于未单独声明单个导入,因此唯一的替代方法是将它们作为成员添加到全局命名空间(以便能够在没有命名空间前缀的情况下访问它们),这将无法使用模块。

答案 1 :(得分:0)

import *作为'module'中的方法将创建一个名为methods的对象,该对象包含模块的所有导出。无法直接导入和附加到全局命名空间。 - 非常好!