memoize() function
계산 결과를 Map에 저장하는 새 함수를 생성합니다. 함수가 동일한 입력으로 다시 호출되면 재계산하는 대신 캐시된 결과를 검색합니다. resolver가 제공되면 메모이제이션된 함수에 제공된 인자를 기반으로 결과를 저장하기 위한 캐시 키를 결정합니다. 기본적으로 메모이제이션된 함수에 제공된 첫 번째 인자가 맵 캐시 키로 사용됩니다.
Signature:
typescript
declare function memoize<
F extends (...args: any[]) => any,
K extends Parameters<F>[0],
Return extends F & {
cache: K extends object ? WeakMap<K, ReturnType<F>> : Map<K, ReturnType<F>>;
},
>(f: F): Return;Example
ts
const add10 = (a: number): number => a + 10;
const memoized = memoize(add10);
console.log(memoized(5)); // 15
console.log(memoized(10)); // 20
console.log(memoized(5)); // 15 (cached)
memoized.cache.clear(); // clear cache
console.log(memoized(5)); // 15 (no cache)