Кажется, что Object.values ​​не работает в типе enum - PullRequest
0 голосов
/ 14 апреля 2020

В моем приложении определено это перечисление:

export enum Status {
    BOOKED = 'B',
    FREE = 'F',
}

, и я добавляю это сообщение на консоли

console.log ('<------------------------------------>');
        console.log (code.value);
        console.log (Object.values(Status));
        console.log (code.value in Object.values(Status));
        console.log ('<------------------------------------>');

 <------------------------------------>

, и я вижу это на консоли, code.value не входит в enum; Я должен видеть истину

    B
    [ 'B', 'F' ]
   false

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Вы должны использовать array.include(), чтобы проверить, содержит ли массив значение https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

const values = Object.values(Status);
console.log(values.includes(code.value));
0 голосов
/ 14 апреля 2020

У вас есть этот объект

export enum Status {
    BOOKED = 'B',
    FREE = 'F',
}

Object.values(Status) даст вам [ 'B', 'F' ], что ожидается

Прочтите это для получения дополнительной информации -

Метод Object.values ​​() возвращает массив значений собственного перечисляемого свойства данного объекта в том же порядке, который указан в for ... in l oop. (Единственное отличие состоит в том, что for ... in l oop также перечисляет свойства в цепочке прототипов.)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values

...