我有一些像这样的emun
export enum Languages {
nl = 1,
fr = 2,
en = 3,
de = 4
}
和一些const language ='de';
我只需要检查 enum constraint const 语言,我知道我可以用数组做
包含但如何检查ENUM?
我也知道我可以这样检查
if (type in Languages) {
}
但这项工作是数字而不是字符串
最佳答案
您可以使用 Object.keys()
为了访问枚举键,然后是一个简单的 Array.prototype.includes()
:
enum Languages {
nl = 1,
fr = 2,
en = 3,
de = 4,
}
const language = "de";
console.log(Object.keys(Languages).includes(language)); //true
这是有效的,因为 Enum ,当被转译为 JavaScript 时,就变成了一个简单的对象:
var Languages;
(function(Languages) {
Languages[(Languages["nl"] = 1)] = "nl";
Languages[(Languages["fr"] = 2)] = "fr";
Languages[(Languages["en"] = 3)] = "en";
Languages[(Languages["de"] = 4)] = "de";
})(Languages || (Languages = {}));
console.log(Languages);
.as-console-wrapper {
min-height: 100%;
}
关于typescript - 检查字符串是否在 ENUM typescript 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68820232/