Vadiok
@Vadiok
Веб разработчик

Как использовать проверку на null в TypeScript в функции вместо if?

Проще объяснить вопрос на простом примере
const isNotEmptyString = (str: string|null): boolean => {
  if (!str) {
    return false;
  }
  return !!str.length;
};

const getStringLength = (str: string|null): number => {
  if (!isNotEmptyString(str)) {
    return 0;
  }
  return str.length; // Qualifier of 'length' is possibly null
};

В "isNotEmptyString()" я проверяю параметр на "null" - если будет "null", то функция вернет ``false``.
В "getStringLength()" я вызываю "isNotEmptyString()" и, если "isNotEmptyString()" вернет true, то логично, что переданный параметр "str" будет не "null". Но TypeScript все равно требует проверку на "null" в методе "getStringLength()".
Можно ли как-то избежать лишнего "if (str)" в "getStringLength()"?
  • Вопрос задан
  • 868 просмотров
Решения вопроса 1
@forspamonly2
можно. это называется type-predicate

const isNotEmptyString = (str: string|null): str is string => { ...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы