NodeJS тернарный оператор с двойным отрицанием - PullRequest
1 голос
/ 27 июня 2019

Я использую троичный оператор в NodeJS, показанном ниже

let err = {a: 10, message: 0}
const error = !!err.message ? err.message : err;

Но код выше показывает ошибку eslint для двойного отрицания, как это решить?ниже альтернатива такая же, как и выше

const error = err.message ? err.message : err;

Ответы [ 2 ]

6 голосов
/ 27 июня 2019

Нет необходимости использовать !! - этот код - то, что вы хотите:

const error = err.message ? err.message : err;

Если вы действительно хотите проверить булево, а не чистое значение:

const error = Boolean(err.message) ? err.message : err;

Также обратите внимание, что то, что вы делаете - если err.message является правдивым, используйте его или используйте err - это точный случай использования логического оператора ИЛИ ||:

const err = err.message || err;
5 голосов
/ 27 июня 2019

Вы можете полностью отказаться от условного оператора, если хотите - если err.message является ложным, просто чередуйте с err:

const error = err.message || err;
...