Skip to content

memoizeWeak

memoizeWeak<A, B>(f): (a) => B

Defined in: Composition/memoize.ts:89

Creates a memoized version of a function using WeakMap. Only works with object arguments, but allows garbage collection of cached values when keys are no longer referenced.

A extends object

B

(a) => B

(a) => B

type User = { id: number; name: string };
const expensiveOperation = (u: User) => u.name.toUpperCase();

const processUser = memoizeWeak((user: User) => {
  return expensiveOperation(user);
});

const user = { id: 1, name: "Alice" };
processUser(user); // computed
processUser(user); // cached
// When `user` is garbage collected, cached result is too