Проверка, существует ли ключ объекта в одном утверждении - PullRequest
1 голос
/ 17 марта 2019

У меня есть объект javascript, который может содержать или не содержать определенный ключ, который может быть или не быть истинным;

{
    myKey: true,
}

Я хочу проверить, существует ли ключ, и если он существует, является ли он истинным. Я мог бы сделать это так;

if (myObject.myKey == true) {
}

При использовании оператора свободного равенства == ответ будет ложным, если myKey не определен или ложным, и только истиной, если он истинен. Тем не менее, Эслинт жалуется 'Expected '===' and instead saw '=='. eslint(eqeqeq)'. Это действительное предупреждение, или я должен просто игнорировать его?

1 Ответ

3 голосов
/ 17 марта 2019

У оператора == много сюрпризов, поэтому eslint его не одобряет. В этом случае, что предлагает eslint, делает именно то, что вы просите:

if (myObject.myKey === true) {
}

Различия с оператором == возникают только в том случае, если значение существует и не является логическим; например значение 1. Из-за преобразования типов 1 == true - это истина, а 1 === true - это ложь.

Если вам также нужно истинное значение для таких случаев, просто напишите

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