Я использую angular-jwt, чтобы проверить, истек ли срок действия токена, и при использовании я получаю эту ошибку
Введите «строка» | null не может быть назначен для типа «строка»
helper = new JwtHelperService();
var token: string = localStorage.getItem('token');
this.helper.isTokenExpired(token); // this line contains the error
Ошибка
@slideshowp2 спасибо за ответ. Я использую машинописную версию ~ 4.0.2.
Вы используете npmjs.com/package/@auth0/angular-jwt? Какая версия?
Ошибка именно в том, что она означает: токен может быть null, и поэтому его нельзя передать в аргумент, который не принимает потенциальное нулевое значение. Перед передачей проверьте, является ли значение нулевым или нет. Или, если это значение null, измените его значение на undefined.
Да, я использую auth0/angular-jwt
Код на скриншоте не соответствует коду над ним. localStorage.getItem может вернуть null, поэтому указание string в качестве типа для token, вероятно, вызовет ошибку в этот момент (если вы не используете строгие проверки нулей в своем tsconfig)






Ваш токен не может быть нулевым. Пытаться
let token = localStorage.getItem('token');
token = token === null ? undefined : token;
this.helper.isTokenExpired(token);
Возможно, попробуйте добавить условие «если», прежде чем проверять, не является ли «токен» нулевым:
var token: string = localStorage.getItem('token');
if (token)
this.helper.isTokenExpired(token); // this line contains the error
localStorage.getItem('token') возвращает string|null, поэтому это вызовет ошибку машинописного текста, если оно будет приведено к stringВот решение.
let token: any = localStorage.getItem('token');
if (token == null)
token = undefined;
return this.helper.isTokenExpired(token);
Сначала вы должны проверить свой токен
var token: string = localStorage.getItem('token');
if (token) {
this.helper.isTokenExpired(token);
}
Какую версию
TypeScriptвы используете?