Типографский оператор If с несколькими значениями соответствует одной и той же переменной - PullRequest
0 голосов
/ 12 июля 2020

Есть ли более короткий способ управлять списком совпадающих значений для той же переменной в операторе IF в Typescript?

if(X==5 || X==undefined || X=="") {
     //do something...
}

1 Ответ

1 голос
/ 12 июля 2020

Синтаксически вы можете использовать switch вместо if для проверки нескольких значений с использованием повторяющихся случаев:

switch (x) {
  case 5:
  case "":
  case undefined:
    // do something
    break;
}

Но это делается редко.

Для программного тестирования несколько значений, вы можете поместить значения в массив и проверить, что он включает значение вашего аргумента, используя indexOf:

if ([5, "", undefined].indexOf(x) >= 0) {
  ...
}

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

const values = [5, "", undefined];

// elsewhere
if (values.indexOf(x) >= 0) {
  ...
}

Фактически, если количество значений для проверки велико, вы можете поместить их в Set и проверить, что это has их, так как это быстрее, чем тестирование с массивом:

const values = new Set(5, "", undefined);

// elsewhere
if (values.has(x)) {
  ...
}
...