| interface ProxyStorage { | 
|   getItem(key: string): any; | 
|   setItem(Key: string, value: string): void; | 
|   removeItem(key: string): void; | 
|   clear(): void; | 
| } | 
|   | 
| //sessionStorage operate | 
| class sessionStorageProxy implements ProxyStorage { | 
|   protected storage: ProxyStorage; | 
|   | 
|   constructor(storageModel: ProxyStorage) { | 
|     this.storage = storageModel; | 
|   } | 
|   | 
|   // 存 | 
|   public setItem(key: string, value: any): void { | 
|     this.storage.setItem(key, JSON.stringify(value)); | 
|   } | 
|   | 
|   // 取 | 
|   public getItem<T = any>(key: string): null | T { | 
|     return JSON.parse(this.storage.getItem(key)); | 
|   } | 
|   | 
|   // 删 | 
|   public removeItem(key: string): void { | 
|     this.storage.removeItem(key); | 
|   } | 
|   | 
|   // 清空 | 
|   public clear(): void { | 
|     this.storage.clear(); | 
|   } | 
| } | 
|   | 
| //localStorage operate | 
| class localStorageProxy extends sessionStorageProxy implements ProxyStorage { | 
|   constructor(localStorage: ProxyStorage) { | 
|     super(localStorage); | 
|   } | 
| } | 
|   | 
| export const storageSession = new sessionStorageProxy(sessionStorage); | 
|   | 
| export const storageLocal = new localStorageProxy(localStorage); |