我们可以为打字稿枚举生成动态密钥吗?

时间:2019-09-26 17:02:57

标签: typescript typescript-typings

首先,我是打字稿的初学者。我来自JavaScript世界。如果我问错了,请原谅我。

我想要什么?

enum Add {
  PREFIX = 'ADD',
  ROUTE_PREFIX = 'add'
}

export CrudAdd {
  `${Add.PREFIX}_CUSTOMER` = `${Add.ROUTE_PREFIX}-customer`,
  // ....
}

我不想一直输入*_CUSTOMER

这可以像普通的JS一样实现

const obj = {
  `${Add.PREFIX}_CUSTOMER`: `${Add.ROUTE_PREFIX}-customer`
}

在编译枚举后我读到的某个地方不过是一个JS对象。

我可以实现这种行为吗?

再次,我对这个问题感到很抱歉。

1 个答案:

答案 0 :(得分:1)

您要寻找的东西分为两部分-

  1. 您可以将键和值分配给作为集合访问属性的对象-

    obj[`${Add.PREFIX}_CUSTOMER`] = `${Add.ROUTE_PREFIX}-customer`;
    
  2. 您可以遍历enum并使用Object.keys(YourEnum)为其赋值,例如-

    enum Add {
      PREFIX = 'ADD',
      ROUTE_PREFIX = 'add'
    }
    
    export const obj = {
    };
    
    Object.keys(Add).forEach(x=>{
      obj[x] = Add[x];
    });
    
    console.log(obj);
    

检查console in this StackBlitz

相关问题