在Typescript中的const enum

时间:2016-10-24 20:55:57

标签: javascript typescript enums

我有一个使用Typescript的React应用程序。现在我遇到了const enum的问题。这是我的枚举:

export const enum Snack {
    Apple = 0,
    Banana = 1,
    Orange = 2,
    Other = 3
}

我试图匹配的服务不​​是返回值,而是枚举中项目的索引。因此,例如,如果用户设置为在苹果上吃零食,则该服务为该用户返回0而不是Apple'。理想情况下,我想做类似的事情:

var snackIndex = UserSnack.type; // returning 0 in this example
var userSnack = Snack[snackIndex]; // would return 'Apple'

当我尝试类似的东西时,我收到以下错误:

错误TS2476:只能使用字符串文字访问const enum成员。

由于我收到数据的服务不会返回字符串,因此我无法解决此问题。

感谢任何帮助。

1 个答案:

答案 0 :(得分:24)

枚举中的

const表示枚举被完全擦除,这意味着您无法通过任意值对其进行索引。只需删除const修饰符。

另见How do the different enum variants work in TypeScript?