[英]How to check if given enum is string based or numeric in Typescript
I have two enums which are defined like this:我有两个枚举,它们的定义如下:
enum Ed {
up,
down,
left,
right,
}
//or
enum Es {
A = "a",
B = "b",
C = "c",
}
So I need a function isStringEnum
which for isStringEnum(Ed)
or isStringEnum(Ed.up)
will return false.所以我需要一个 function
isStringEnum
对于isStringEnum(Ed)
或isStringEnum(Ed.up)
将返回 false。 For isStringEnum(Es)
or isStringEnum(Es.A)
will return true.对于
isStringEnum(Es)
或isStringEnum(Es.A)
将返回 true。
Thanks谢谢
This should do the trick:这应该可以解决问题:
function isStringEnum(e: object){
return Object.entries(e).every(e => typeof e[1] === "string")
}
console.log(isStringEnum(Ed)) // false
console.log(isStringEnum(Es)) // true
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.