1/** `lodash.memoize` */ 2export function memoize<T extends (...args: any[]) => any>(fn: T): T { 3 const cache: { [key: string]: any } = {}; 4 return ((...args: any[]) => { 5 const key = JSON.stringify(args); 6 if (cache[key]) { 7 return cache[key]; 8 } 9 const result = fn(...args); 10 cache[key] = result; 11 return result; 12 }) as any; 13} 14