Javascript(ES6)模块:是否可以导出具有动态名称的变量?

5

在ES6中,我可以导出一个简单的foo常量:

export const foo = 1;

我也可以将该导出值 (1) 转换为变量,并进行导出:

const fooValue = 1;
export foo = fooValue;

但我的问题是,是否有办法将导出的 (foo) 转换为变量:

const fooLabel = 'foo';
const fooValue = 1;
export something(fooLabel) = fooValue;

或者是导出总是必须明确命名吗?
1个回答

11

你将无法使用命名导出。不过,通过动态生成的键导出单个对象相当容易:

let obj = {};

obj[fooLabel] = fooValue;

export default obj;

4
是的,但不幸的是,那样我就无法执行 import {foo} from 'obj' :( - machineghost
1
@machineghost - 不行,但你可以在另一条语句中导入并解构它。 - Justin Niessner
是的,这不是我所期望的接口,但它仍然比ES5(非)导入好得多。 - machineghost

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