// 处理缓存的 容错处理 const checkStorage = (name: string, type: string) => { if (!name) { throw new Error('缓存名字不存在') } if (type !== 'sessionStorage' && type !== 'localStorage') { throw new Error('当使用 type字段时 不传默认为 sessionStorage进行缓存, 使用type 字段时 必须以 sessionStorage 或者 localStorage 作为参数') } } /** * 存储 sessionStorage localStorage */ export const __setItem = (name: string, content: unknown, type = 'sessionStorage') => { checkStorage(name, type) if (name === 'x-auth-token') { name = (window as any).info.storageToken type = 'localStorage' } if (typeof content !== 'string') { content = JSON.stringify(content) } return type === 'sessionStorage' ? window.sessionStorage.setItem(name, content as string) : window.localStorage.setItem(name, content as string) } /** * 获取 sessionStorage localStorage */ export const __getItem = (name: string, type = 'sessionStorage') => { checkStorage(name, type) if (name === 'x-auth-token') { name = (window as any).info.storageToken type = 'localStorage' } try { return JSON.parse((window as any)[type].getItem(name)) } catch (err) { return (window as any)[type].getItem(name) } } /** * 删除 sessionStorage localStorage */ export const __removeItem = (name: string, type = 'sessionStorage') => { checkStorage(name, type) return type === 'sessionStorage' ? window.sessionStorage.removeItem(name) : window.localStorage.removeItem(name) }