Je reçois un numéro type = 3
et il faut vérifier s'il existe dans cet enum :
export const MESSAGE_TYPE = {
INFO: 1,
SUCCESS: 2,
WARNING: 3,
ERROR: 4,
};
Le meilleur moyen que j'ai trouvé est de récupérer toutes les valeurs des Enum dans un tableau et d'utiliser indexOf dessus. Mais le code résultant n'est pas très lisible :
if( -1 < _.values( MESSAGE_TYPE ).indexOf( _.toInteger( type ) ) ) {
// do stuff ...
}
Existe-t-il un moyen plus simple de procéder ?
0 votes
if(Object.values(MESSAGE_TYPE).includes(+type)
? Il n'y a pas grand-chose que vous puissiez faire.1 votes
Cela fonctionne dans ES6 mais pas dans ES5 malheureusement.
0 votes
@TimSchoch Vous pouvez juste faire
!!MESSAGE_TYPE[type]
pour vérifier si une valeur existe.MESSAGE_TYPE[type]
retournera undefined si la valeur detype
n'existe pas surMESSAGE_TYPE
2 votes
@Kevin Babcock Cela échouera si une des valeurs de l'enum correspond à
0
mais0 votes
@Ingo Bürk Bon point ! Je suppose qu'une vérification explicite pourrait être faite
MESSAGE_TYPE[type] !== undefined
0 votes
N'utilisez pas les enums ... si possible.