如何检查给定的字符串是否作为Typescript中字符串枚举中的值存在?

kar*_*ina 5 enums typescript

例如

enum ABC { A = "a", B = "bb", C = "ccc" };

alert("B" in ABC);  // true
alert("bb" in ABC); // false (i wanna true)
Run Code Online (Sandbox Code Playgroud)

请记住,我们讨论字符串枚举功能.

Jam*_*ger 5

你的枚举:

enum ABC {
    A = "a",
    B = "bb",
    C = "ccc"
};
Run Code Online (Sandbox Code Playgroud)

编译后(运行时)变成这样:

var ABC = {
    A: "a",
    B: "bb",
    C: "ccc"
};
Run Code Online (Sandbox Code Playgroud)

因此,你需要检查是否有任何的ABCIS "bb"。为此,您可以使用Object.values()

Object.values(ABC).some(val => val === "bb"); // true
Object.values(ABC).some(val => val === "foo"); // false
Run Code Online (Sandbox Code Playgroud)