我有一个导出两个常量的ES6模块:
export const foo = "foo";
export const bar = "bar";
我可以在另一个模块中执行以下操作:
import { foo as f, bar as b } from 'module';
console.log(`${f} ${b}`); // foo bar
当我使用NodeJS模块时,我会这样写:
module.exports.foo = "foo";
module.exports.bar = "bar";
现在,当我在另一个模块中使用它时,我可以用ES6模块重命名导入的变量吗?
const { foo as f, bar as b } = require('module'); // invalid syntax
console.log(`${f} ${b}`); // foo bar
如何在NodeJS模块中重命名导入的常量?
答案 0 :(得分:21)
当然,只需使用对象解构语法:
const { foo: f, bar: b } = require('module');
答案 1 :(得分:6)
可能(使用Node 8.9.4测试):
{{1}}
答案 2 :(得分:0)
是的,一个简单的分解就可以满足您的要求。
var events = require('events');
var emitter = new events.EventEmitter();
const emitter = {EventEmitter} = require('events');
emitter()
将为方法EventEmitter()
只记得实例化您的命名函数:var e = new emitter();
?
答案 3 :(得分:-1)
我会说这是不可能的,但另一种选择是:
const m = require('module');
const f = m.foo;
const b = m.bar;