зачем использовать '===' для сравнения перечислений в машинописи? - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь использовать '==' для сравнения перечислений, но не работает хорошо.

if (data.event == ModalEventsEnum.SUBMIT) {
       this.calculatePorcentage();
}

Функция this.calculatePorcentage () не выполнена.

1 Ответ

0 голосов
/ 12 июля 2019

Предполагая, что вы уже знаете, как работают операторы сравнения "==" и "===" (см. Ссылку, предоставленную @edtheprogrammerguy выше), давайте сосредоточимся на других аспектах перечислений в TypeScript.

Если при определении перечисления не указан другой тип, по умолчанию перечисление является числовым, и для этого ответа я буду считать, что у вас числовой.

При использовании перечислений иногда сохраняемым значением является не числовое значение перечисления, а имя элемента перечисления. Это чаще всего, когда данные собираются в пользовательском интерфейсе. Когда значения получены в сервисах, в основном в бэкэнд-сервисах, мы сравниваем значение с константой enum.

В этом фрагменте сравнение не будет выполнено либо с "==", либо с "===", так как мы сравниваем строку "SUMMIT" с числом, подобным 1 (предполагая, что SUMMIT является первым элементом):

// For example: assuming data.event = "SUMMIT", instead of data.event = 1
if (data.event == ModalEventsEnum.SUBMIT) {
       this.calculatePorcentage();
}

Вам необходимо проверить данные (строку или число), которые вы получаете, в свойстве "data.event".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...