رمزگشایی JWT در تایپاسکریپت خطای «ممکن است شیء 'undefined' باشد» را میدهد
من دارم تلاش میکنم توکن 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);
}
}
}
پاسخ شماره ۱
decoded.exp احتمالاً undefined است، بنابراین باید ابتدا آن را بررسی کنید قبل از اینکه با currentTime مقایسه شود
if (decoded?.exp && decoded.exp < currentTime) { }
