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)