使用ts二次封装storage(sessionStorage/localStorage)
export class LocalCache { setCache<T = any>(key: string, value: T): boolean; setCache<T = any>( key: string, value: T, localOrSessionStorage: boolean ): boolean; /** * 设置缓存 * @param key * @param value * @param localOrSessionStorage true => localStorage 默认就是true 如果需要使用sessionStorage 需要传递该参数 false * @returns */ setCache<T = any>( key: string, value: T, localOrSessionStorage = true ): boolean { try { const val = JSON.stringify(value); if (localOrSessionStorage) { window.localStorage.setItem(key, val); } else { window.sessionStorage.setItem(key, val); } } catch (error) { return false; } return true; } getCache<T = any>(key: string): T; getCache<T = any>(key: string, localOrSessionStorage: boolean): T; /** * * @param key 获取缓存 * @param localOrSessionStorage * @returns */ getCache<T>(key: string, localOrSessionStorage = true): T { let res: any; if (localOrSessionStorage) { const val = window.localStorage.getItem(key); if (val) { res = JSON.parse(val); } } const val = window.sessionStorage.getItem(key); if (val) { res = JSON.parse(val); } return res as T; } deleteCache(key: string): void; deleteCache(key: string, localOrSessionStorage: boolean): void; deleteCache(key: string, localOrSessionStorage = true): void { if (localOrSessionStorage) window.localStorage.removeItem(key); else window.sessionStorage.removeItem(key); } clearCache(): void; clearCache(localOrSessionStorage: boolean): void; clearCache(localOrSessionStorage = true): void { if (localOrSessionStorage) window.localStorage.clear(); else window.sessionStorage.clear(); } } // 缓存对象 export default new LocalCache();
来源 :
使用ts二次封装storage(sessionStorage/localStorage)_尤雨东的博客-CSDN博客_ts storage