Skip to content

Instantly share code, notes, and snippets.

@MarekZeman91
Created April 18, 2022 00:03
Show Gist options
  • Save MarekZeman91/0b4f3143804d8d3245520d311e4e1658 to your computer and use it in GitHub Desktop.
Save MarekZeman91/0b4f3143804d8d3245520d311e4e1658 to your computer and use it in GitHub Desktop.
import { useMemo } from 'react';
export function useMemoDeps<R, D1, D2, D3, D4, D5, D6, D7, D8>(
factory: (...deps: [D1, D2, D3, D4, D5, D6, D7, D8]) => R,
deps: [D1, D2, D3, D4, D5, D6, D7, D8]
): R;
export function useMemoDeps<R, D1, D2, D3, D4, D5, D6, D7>(
factory: (...deps: [D1, D2, D3, D4, D5, D6, D7]) => R,
deps: [D1, D2, D3, D4, D5, D6, D7]
): R;
export function useMemoDeps<R, D1, D2, D3, D4, D5, D6>(
factory: (...deps: [D1, D2, D3, D4, D5, D6]) => R,
deps: [D1, D2, D3, D4, D5, D6]
): R;
export function useMemoDeps<R, D1, D2, D3, D4, D5>(
factory: (...deps: [D1, D2, D3, D4, D5]) => R,
deps: [D1, D2, D3, D4, D5]
): R;
export function useMemoDeps<R, D1, D2, D3, D4>(factory: (...deps: [D1, D2, D3, D4]) => R, deps: [D1, D2, D3, D4]): R;
export function useMemoDeps<R, D1, D2, D3>(factory: (...deps: [D1, D2, D3]) => R, deps: [D1, D2, D3]): R;
export function useMemoDeps<R, D1, D2>(factory: (...deps: [D1, D2]) => R, deps: [D1, D2]): R;
export function useMemoDeps<R, D1>(factory: (...deps: [D1]) => R, deps: [D1]): R;
export function useMemoDeps<R, D>(factory: (...deps: D[]) => R, deps: D[]): R {
return useMemo(() => factory(...deps), deps);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment