Я получил номер type = 3и должен проверить, существует ли он в этом перечислении:
export const MESSAGE_TYPE = {
INFO: 1,
SUCCESS: 2,
WARNING: 3,
ERROR: 4,
};
Лучший способ, который я нашел, - это получить все значения Enum в виде массива и использовать для него indexOf. Но полученный код не очень разборчивый:
if( -1 < _.values( MESSAGE_TYPE ).indexOf( _.toInteger( type ) ) ) {
// do stuff ...
}
Есть ли более простой способ сделать это?
!!MESSAGE_TYPE[type]проверить, существует ли значение. MESSAGE_TYPE[type]вернет undefined, если значение typeне существует наMESSAGE_TYPE
0, хотя одно из значений enum сопоставляется .
MESSAGE_TYPE[type] !== undefined
if(Object.values(MESSAGE_TYPE).includes(+type)? Там не так много, вы можете сделать.