typescript - 检查字符串是否在 ENUM 打字稿中
问题描述
我有一些像这样的emun
export enum Languages {
nl = 1,
fr = 2,
en = 3,
de = 4
}
有些const language ='de';
我只需要检查枚举约束 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%;
}
推荐阅读
- excel - VBA 格式编号无法识别
- java - 具有默认值的最小尺寸列表
- tsql - 来自 Parquet nvarchar 限制问题的 Azure Synapse Serverless External 表
- mysql - MySql过滤结果列表
- git - 如何检查存储库是否通过 HTTP 或 ssh 克隆?
- event-handling - svelte:如何在我自己的组件中使用事件修饰符
- android - 发布 KMM 库时未解决的对类型别名、内联函数和扩展函数的引用
- flutter - 如何用不同的捆绑ID从不同的产品风格调用同一家商店?[Flutter in_app_purchase]
- android - Android TV 应用程序设计:视频细节和视频水平列表
- twig - 如何翻译变量?