从实例中获取TypeScript枚举名称

Rob*_*son 7 javascript enums typescript reactjs

我有以下TypeScript枚举:

enum Country {
    BR = "Brazil",
    NO = "Norway"
}
Run Code Online (Sandbox Code Playgroud)

然后想象我有一个方法,它接受一个Country参数,如下所示:

someFunc = (country: Country): void => {
    console.log(country) //Will print "Brazil" if country = Country.BR
    console.log(Country[country]) //Same as above
    console.log(???) //I want to print "BR" if country = Country.BR
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决第三个console.log陈述?

如何获得枚举密钥?

问候

Sur*_*yan 9

在enum构造下你得到这样的东西

Country["BR"] = "Brazil";
Country["NO"] = "Norway";
Run Code Online (Sandbox Code Playgroud)

这是一个简单的对象.

默认情况下,您无法获取枚举的键.但是您可以手动迭代键并尝试找到那个键.

enum Country {
    BR = "Brazil",
    NO = "Norway"
}

console.log(Object.keys(Country).find(key => Country[key] === country))
Run Code Online (Sandbox Code Playgroud)