Необязательная цепочка с использованием indexOf - PullRequest
0 голосов
/ 07 апреля 2020

Я хотел бы упростить этот код:

function exists(haystack?: string[]): boolean {
  if (haystack) {
    return haystack.indexOf("needle") > -1
  }

  return false
}

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

function exists(haystack?: string[]): boolean {
  return haystack?.indexOf("needle") > -1 // ERROR: Object is possibly 'undefined'. (2532)
}

1 Ответ

1 голос
/ 07 апреля 2020

Вы можете предоставить haystack значение по умолчанию, например, пустой массив, чтобы при отсутствии значения при вызове этой функции мы могли использовать пустой массив, чтобы предотвратить эту undefined ошибку объекта:

function exists(haystack: string[] = []): boolean {
  return haystack.indexOf("needle") > -1;
}

Вы можете улучшить свой код, заменив .indexOf() на includes();

function exists(haystack: string[] = []): boolean {
  return haystack.includes("needle");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...