如何在使用typescript/JavaScript传递key时获取enum对象值

q1qsirdb  于 7个月前  发布在  TypeScript
关注(0)|答案(2)|浏览(129)

我有一个枚举对象,以及如何在使用typescript传递键时获取对象值
下面开关的情况下工作,如果枚举对象是如此之长,任何其他更好的方法来做

export enum AllGroup = {
'GROUP_AUS': 'A'
'GROUP_IN': 'B'
}

个字符
预期输出

B


试图

const renderValue = (input: string): JSX.Element => {
    switch (input) {
      case AllGroup.GROUP_AUS:
        return <>A</>;
      case AllGroup.GROUP_IN:
        return <>B</>;

    }
    return <div></div>;
  };

noj0wjuj

noj0wjuj1#

如果你想要一个更形式化的方法,你可以创建一个函数,它返回一个对象,该对象具有通过键获取值的方法,或者返回所有值。在下面的例子中,get()getAll()

请参考以下代码:

function createEnum(values) {
  return {
    get: key => values[key],
    getAll: () => values
  };
}

const AllGroup = createEnum({
  GROUP_AUS: 'A',
  GROUP_IN: 'B',
});

   

console.log(AllGroup.get('GROUP_AUS')); // Outputs: A
console.log(AllGroup.get('GROUP_IN'));  // Outputs: B
console.log(AllGroup.get('xyz'));       // Outputs: undefined
console.log(AllGroup.getAll());         // Outputs:{ "GROUP_AUS": "A","GROUP_IN":"B"}

字符串

xmq68pz9

xmq68pz92#

你可以通过键直接访问枚举:

enum AllGroup {
  GROUP_AUS = "A",
  GROUP_IN = "B",
}

const renderValue = (input: string) => {
  return AllGroup[input];
};

console.log(renderValue("GROUP_IN")); // Output: B

字符串

相关问题