Skip to content

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)

Open Source Code

Released under the Apache-2.0 License.