首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从数组导出常量

从数组导出常量
EN

Stack Overflow用户
提问于 2018-02-28 02:35:04
回答 2查看 941关注 0票数 0

文件中有很长一组导出的常量。以下是一段节选:

代码语言:javascript
复制
...
export const COUNTER_INCREMENT_REQUESTED = 'COUNTER_INCREMENT_REQUESTED';
export const COUNTER_INCREMENT_REQUESTED_ASYNC = 'COUNTER_INCREMENT_REQUESTED_ASYNC';
export const COUNTER_DECREMENT_REQUESTED = 'COUNTER_DECREMENT_REQUESTED';
export const COUNTER_DECREMENT_REQUESTED_ASYNC = 'COUNTER_DECREMENT_REQUESTED_ASYNC';
...

是否有一种方法来创建一个数组并循环它,导出每个值?

代码语言:javascript
复制
const events = [
  ...
  'COUNTER_INCREMENT_REQUESTED',
  'COUNTER_INCREMENT_REQUESTED_ASYNC',
  'COUNTER_DECREMENT_REQUESTED',
  'COUNTER_DECREMENT_REQUESTED_ASYNC',
  ...
]

for(event of events) {
  export ...
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-28 02:44:14

不,这不可能。

ES模块系统的显著特点之一是模块结构可以进行静态分析。这基本上可以防止您想要做的事情以编程方式导出,因为这样会破坏静态可分析性。

票数 2
EN

Stack Overflow用户

发布于 2018-03-01 15:33:54

通过将常量放入它自己的文件/模块中,然后将它们导入到模块中并在那里循环,我确实管理了这方面的变化。

constants.js

代码语言:javascript
复制
export const COUNTER_INCREMENT_REQUESTED = 'COUNTER_INCREMENT_REQUESTED';
export const COUNTER_INCREMENT_REQUESTED_ASYNC = 'COUNTER_INCREMENT_REQUESTED_ASYNC';
export const COUNTER_DECREMENT_REQUESTED = 'COUNTER_DECREMENT_REQUESTED';
export const COUNTER_DECREMENT_REQUESTED_ASYNC = 'COUNTER_DECREMENT_REQUESTED_ASYNC';

index.js

代码语言:javascript
复制
import * as actions from './constants';
...
let eventEmitters = {};
for(const action in actions ) {
  ...
}
export default eventEmitters;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49021095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档