JWT-ის დეკოდირება Typescript-ში იძლევა შეცდომას „ობიექტი შესაძლოა 'სიმბოლურად განსაზღვრული არ იყოს'
ვცდილობ JWT ტოკენის დეკოდირებას, რომ გავამართლებ თუ არა ის. მაგრამ მივიღე შეცდომა, რომ დეკოდირებული ობიექტი შესაძლოა იყოს 'უცნობი'
import jwt_decode, { JwtPayload } from "jwt-decode";
if (token) {
const decoded = jwt_decode<JwtPayload>(token || "") || null;
if (decoded) {
const currentTime = Date.now() / 1000;
if (decoded?.exp < currentTime) { //Object is possibly 'undefined'.
dispatch(logout());
localStorage.removeItem("token");
setLoading(false);
}
}
}
პასუხი #1
decoded.exp შესაძლოა იყოს undefined, ამიტომ უნდა გადაამოწმოთ იგი პირველ რიგში სანამ შედარებას გაუწევთ currentTime-თან
if (decoded?.exp && decoded.exp < currentTime) { }
