Typescript 封装 LocalStorage 的过期时间

94 阅读1分钟
Storage.prototype.setExpiredFunction = (
  key: string,
  value: any,
  expire: number
) => {
  let time = expire * 86_400;

  let obj = {
    data: value,
    time: Date.now(),
    expire: time,
  };

  localStorage.setItem(key, JSON.stringify(obj));
};


Storage.prototype.getIsExpired = (key: string) => {
  interface obj {
    data: any;
    time: number;
    expire: number;
  }
  const tokenStr = localStorage.getItem(key) || "";

  if (tokenStr) {
    const val: obj = JSON.parse(tokenStr);
    if (!val) return val;
    if (Date.now() > val.time + val.expire) {
      localStorage.removeItem(key);
      return false;
    } else {
      return true;
    }
  } else {
    return false;
  }
};