import { decrypt, encrypt } from '../crypto'; function createSessionStorage() { function set(key: K, value: T[K]) { const json = encrypt(value); sessionStorage.setItem(key as string, json); } function get(key: K) { const json = sessionStorage.getItem(key as string); let data: T[K] | null = null; if (json) { try { data = decrypt(json); } catch { // 防止解析失败 } } return data; } function remove(key: keyof T) { window.sessionStorage.removeItem(key as string); } function clear() { window.sessionStorage.clear(); } return { set, get, remove, clear }; } export const sessionStg = createSessionStorage();