memoize function

Create a memoized version of a function.

Example

const memoizedFib = memoize(
  (n: number): number => n <= 1 ? n : memoizedFib(n - 1) + memoizedFib(n - 2)
);

Signature

memoize<T extends (...args: any[]) => any>(fn: T, keyResolver: (...args: Parameters<T>) => string): T

Type Parameters

T

Function type

Parameters

fn

Function to memoize

keyResolver

Function to generate cache key from arguments

Returns

Memoized function