Ошибка машинописного текста при доступе к объекту jwt-decode - PullRequest
1 голос
/ 14 апреля 2020

Я установил @types/jwt-decode, и у меня возникают проблемы с тем, чтобы заставить это работать.

import jwtDecode from 'jwt-decode'

...
let decodedToken = jwtDecode(token);
console.log(decodedToken) // this works! I can see the full object
console.log(decodedToken.exp) // error Object is of type 'unknown'.ts(2571)

1 Ответ

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

Проблема в том, что jwtDecode не знает, что находится внутри вашего токена, поскольку это может быть что угодно. Из-за этого он использует тип unknown, чтобы показать, что результат декодированного JWT неизвестен.

Чтобы обойти это, вам нужно создать interface, описывающий, что вы ожидаете увидеть в вашем JWT, и указать jwtDecode, чтобы использовать его в качестве типа возврата декодированного токена. Вы можете сделать это так:

interface MyToken {
  name: string;
  exp: number;
  // whatever else is in the JWT.
}

const decodedToken = jwtDecode<MyToken>(token);
console.log(decodedToken.exp); // works!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...