import { CADObject } from "../DatabaseServices/CADObject"; class Appcache { private _cacheMap: Map = new Map(); //在缓存排钻的时候,我们避免它重复缓存 _DrillCacheed = new Set(); has(key: string) { return this._cacheMap.has(key); } get(key: string): any | undefined { let val = this._cacheMap.get(key); if (val === undefined) return; if (typeof val === "string" || typeof val === 'number') return val; if (val instanceof CADObject) return val.Clone(); if (Array.isArray(val) && val[0] instanceof CADObject) return val.slice(); return JSON.parse(JSON.stringify(val)); } set(key: string, value: T) { this._cacheMap.set(key, value); } clear() { this._DrillCacheed.clear(); this._cacheMap.clear(); } delete(k: string) { this._cacheMap.delete(k); } } export const appCache = new Appcache();