@laravel_creative_3103

Как корректно превратить Значения из LocalStorage в Date?

Имеется код, в котором одна из строк выводит ошибку:
get token(): string | null {
    const expDate = new Date(localStorage.getItem('fb-token-exp')); //как корректно взять значения из localStorage, и
//сравнить его со временем так как он здесь выводит о 
    if (new Date() > expDate) {
      this.logout();
      return null;
    }
    return localStorage.getItem('fb-token') as string;
  }


Мой вариант:
const expDate = new Date(localStorage.getItem('fb-token-exp') as string) // через as;
    if (new Date() > expDate) {
      this.logout();
      return null;
    }


Корректно ли так будет писать?
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 1
type Token = {
  exp?: string;
  token?: string;
}

get token(): string | null {
  const logout = () => {
    localStorage.removeItem('fb-token')
    this.logout();
    return null
  }

  try {
    const token: Token = JSON.parse(localStorage.getItem('fb-token') || "{}")

    if(token?.exp && token?.token) {
      const expDate = new Date(token.exp); //как корректно взять значения из localStorage, и
//сравнить его со временем так как он здесь выводит о
      if (new Date() > expDate) {
        return logout()
      }
      return token.token;
    }
  }
  catch (_) {
    return logout()
  }

  return logout()
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы