Creates a memoized version of a function by caching its return values based on a deterministic key derived from its arguments.
Supports deep object keys via stableStringify and allows a custom cache resolver for advanced use cases.
The function type to memoize.
The function whose results should be cached.
Optional
Optional custom function to generate cache keys from arguments.
A new function that caches results of fn calls.
fn
const add = (a: number, b: number) => a + b;const memoizedAdd = memoize(add);memoizedAdd(1, 2); // Computes result: 3memoizedAdd(1, 2); // Returns cached result: 3 Copy
const add = (a: number, b: number) => a + b;const memoizedAdd = memoize(add);memoizedAdd(1, 2); // Computes result: 3memoizedAdd(1, 2); // Returns cached result: 3
// Custom cache resolverconst memoized = memoize( (obj: { id: number }) => obj.id * 2, (obj) => String(obj.id));memoized({ id: 1 }); // Computedmemoized({ id: 1 }); // Cached via resolver Copy
// Custom cache resolverconst memoized = memoize( (obj: { id: number }) => obj.id * 2, (obj) => String(obj.id));memoized({ id: 1 }); // Computedmemoized({ id: 1 }); // Cached via resolver
1.2.0
Creates a memoized version of a function by caching its return values based on a deterministic key derived from its arguments.
Supports deep object keys via stableStringify and allows a custom cache resolver for advanced use cases.