Обработка ненулевых утверждений в приложении React Native - PullRequest
0 голосов
/ 04 августа 2020

У меня есть authContext в моем собственном приложении для реакции со свойством token, это может быть string | null. У меня есть несколько защищенных маршрутов, то есть я не показываю ссылки, пока пользователь не вошел в систему и не существует токен. На этих маршрутах я пытаюсь использовать этот токен, но TypeScript говорит, что он может быть нулевым, что имеет смысл, но я знаю, что это невозможно. Я знаю, что могу использовать оператор без утверждения token!, но есть ли альтернатива этой проблеме, потому что это очень часто происходит в моем коде и, кажется, должен быть лучший способ решения этой проблемы. Ценю любые мысли по этому поводу, спасибо.

1 Ответ

1 голос
/ 04 августа 2020

Несколько вещей, которые могут помочь

  1. Используйте условные блоки:
if (!authContext.token) {
  return null
}
// anything after this is going to have TS infer that authContext.token exists 
Ненулевой оператор утверждения, как вы упомянули:
console.log(authContext.token!) 
Повторное объявление переменной и ввод этого
const token = (authContext as {token: string}).token
// use token everywhere in this context instead of authContext.token
...