How to get all the values of an enum with typescript?
本问题已经有最佳答案,请猛点这里访问。
给定一个typescript枚举:
1 2 3 4 5 | export enum Color { Red, Green, Blue, } |
我想要在其所有的价值观在一个数组:像婊子
1 | ["Red","Green","Blue"] |
然而当枚举与工作……
1 | const colors = Object.keys(Color); |
他把阵列和由其组成的指标值:
1 | [ '0', '1', '2', 'Red', 'Green', 'Blue' ] |
这是为什么和如何在案例可以只把values?
您可以过滤掉数字键:
1 2 3 4 5 | const colors = Object.keys(Color).filter((item) => { return isNaN(Number(item)); }); console.log(colors.join(" ")); |
这将打印:
1 2 3 | Red Green Blue |
一个typescript枚举最终将生成一个普通的javascript对象:
1 2 3 4 5 6 7 8 | { '0': 'Red', '1': 'Green', '2': 'Blue', Red: 0, Green: 1, Blue: 2 } |
因此,可以使用数字索引作为键来获取值,并且可以使用该值在枚举中查找其索引:
1 2 3 | console.log(Color[0]); //"Red" console.log(Color["0"]); //"Red" console.log(Color["Red"]) // 0 |