Машинопись ENUM поиск по значению

Это код машинописного текста, я хочу установить перечисление в объекте Event, просмотрев его через значение.

I have this enum -
export enum EVENT_TYPE_ENUM {
    EVENT_TYPE_ONE = "evt.1",
    EVENT_TYPE_TWO = "evt.2",
}

I have this object -
export class Event{
    private eventType: EVENT_TYPE_ENUM;

public getEventType(): EVENT_TYPE_ENUM {
    return this.eventType;
}

public setEventType(eventType: EVENT_TYPE_ENUM): void {
    this.eventType = eventType;
}
}

Я хочу установить eventType для своего объекта Event, выполнив поиск по значению EVENT_TYPE_ENUM. например, я получил значение как «evt.1», теперь я хочу найти EVENT_TYPE_ENUM и установить eventType, метод установки принимает только тип как EVENT_TYPE_ENUM.

const event = new Event();
event.setEventType(); //set value here by searching EVENT_TYPE_ENUM by value 
of evt.1

Возможный дубликат Разобрать строку как Typescript Enum

jcalz 18.12.2018 20:40

Мне сложно понять этот вопрос, потому что это не похоже на минимальный воспроизводимый пример. Хотите сделать event.setEventType("evt.1")? Или event.setEventType(asEnum(EVENT_TYPE_ENUM,"evt.1"))?

jcalz 18.12.2018 20:42
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
1 251
2

Ответы 2

Вы можете перечислить каждую запись перечислений с помощью Object.keys:

Object.keys(MyEnum).forEach(key => {
    console.info(`EVENT_TYPE_ENUM.${key} = ${MyEnum[key as keyof typeof MyEnum]}`);
})

Поскольку Typescript имеет соответствующее представление данных, как вы заявили, достаточно создать следующим образом:

EVENT_TYPE_ENUM["evt.1"] // EVENT_TYPE_ONE

В вашем случае это должно быть так:

const event = new Event()
event.setEventType(EVENT_TYPE_ENUM["evt.1"])

event.setEventType (EVENT_TYPE_ENUM ["evt.1"]) - возвращается undefined

Nick M 18.12.2018 21:55

проверьте свой код, возможно, что-то не так с направлением. Полный пример можно посмотреть здесь: jsfiddle.net/uybx40fw

dimpiax 19.12.2018 09:49

Другие вопросы по теме