Untitled
typescript
a month ago
969 B
2
Indexable
Never
class TimeLimitedCache { ourMap : Map<number,number>; constructor() { this.ourMap = new Map(); } set(key: number, value: number, duration: number): boolean { let timeOutid:ReturnType<typeof setTimeout>; if(this.ourMap.has(key)) { clearTimeout(timeOutid); this.ourMap.set(key,value); timeOutid = setTimeout(()=>{this.ourMap.delete(key)},duration); return true; } else { this.ourMap.set(key,value); timeOutid = setTimeout(()=>{this.ourMap.delete(key)},duration); return false; } } get(key: number): number { if(this.ourMap.has(key)) return this.ourMap.get(key); else return -1; } count(): number { return this.ourMap.size; } } /** * Your TimeLimitedCache object will be instantiated and called as such: * var obj = new TimeLimitedCache() * obj.set(1, 42, 1000); // false * obj.get(1) // 42 * obj.count() // 1 */