diff --git a/src/jsutils/memoize3.js b/src/jsutils/memoize3.js index 366be493fc..2d5707c5e9 100644 --- a/src/jsutils/memoize3.js +++ b/src/jsutils/memoize3.js @@ -3,10 +3,14 @@ /** * Memoizes the provided three-argument function. */ -export default function memoize3 any>( - fn: T, -): T { +export default function memoize3< + A1: { ... } | $ReadOnlyArray, + A2: { ... } | $ReadOnlyArray, + A3: { ... } | $ReadOnlyArray, + R: mixed, +>(fn: (A1, A2, A3) => R): (A1, A2, A3) => R { let cache0; + function memoized(a1, a2, a3) { if (!cache0) { cache0 = new WeakMap(); @@ -33,5 +37,6 @@ export default function memoize3 any>( cache2.set(a3, newValue); return newValue; } - return (memoized: any); + + return memoized; }