基于typescript封装localstorage,sessionstorage模块

utli.ts

import {LocalCacheType} from "./type/type";
function LocalCache(type?:string){
    if(type === localStorage || type === undefined){
        return new UseLocalStorage()
    }else {
        return new UseSessionStorage()
    }
}
class UseLocalStorage implements LocalCacheType{
    setCache(key:string,value:any){
        window.localStorage.setItem(key,JSON.stringify(value))
    }
    getCache(key: string) {
        const value=window.localStorage.getItem(key)
        if(value){
            return JSON.parse(value)
        }
    }
    deleteCathe(key: string) {
        window.localStorage.removeItem(key)
    }
    clearCache() {
        window.localStorage.clear()
    }
}
class UseSessionStorage implements LocalCacheType{
    setCache(key:string,value:any){
        window.sessionStorage.setItem(key,JSON.stringify(value))
    }
    getCache(key: string) {
        const value=window.sessionStorage.getItem(key)
        if(value){
            return JSON.parse(value)
        }
    }
    deleteCathe(key: string) {
        window.sessionStorage.removeItem(key)
    }
    clearCache() {
        window.sessionStorage.clear()
    }
}
export default LocalCache
type.ts

export  interface LocalCacheType{
    setCache(key:string,value:any):void
    getCache(key:string):void
    deleteCathe(key:string):void
    clearCache(key:string):void
}
经验分享 程序员 微信小程序 职场和发展