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) { }