Преобразовать условные операторы (else / if) в логические операторы (&& ||) с помощью JS linter / formatter? - PullRequest
1 голос
/ 23 марта 2019

У меня есть старый код React, использующий много условных выражений, например, установка переменной с помощью LET, а затем if / else для применения значения.

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

Есть ли линтер / форматтер, который может сделать это автоматически?

Пример кода включен.

Пока что не могу сделать это с ESlint или красивее.

let method
if (play && play.show_question) method = 'question'
else if (play && play.show_answer) method = 'answer'

с линтером, автоматически конвертируется в

const method = play && play.show_question ? 'question' : play && play.show_answer && 'answer'

Если существует форматтер / плагин / линтер, который может автоматически рефакторировать это, пожалуйста, дайте мне знать

1 Ответ

1 голос
/ 23 марта 2019

Вы можете сначала проверить play, а затем принять либо часть вопроса, либо часть ответа.

const method = play && (play.show_question && 'question' || play.show_answer && 'answer');

Для получения определенного ложного значения вы можете добавить значение по умолчанию, например undefined

const
    method = play && (play.show_question && 'question' || play.show_answer && 'answer')
        || undefined;
...