Advertisement
Guest User

Untitled

a guest
Jun 15th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.65 KB | None | 0 0
  1. const _getExpensiveThing = () => {
  2. const c: any = getExpensiveThing;
  3. if (c.cache) {
  4. return c.cache;
  5. }
  6. c.cache = expensiveThing();
  7. return c.cache;
  8. }
  9.  
  10. function memoize<T>(fn: () => T) {
  11. let cache: T | undefined = undefined;
  12. return () => {
  13. if (cache === undefined) {
  14. cache = fn();
  15. }
  16. return cache;
  17. };
  18. }
  19.  
  20. interface ExpensiveThing {
  21. bar: number;
  22. baz: number;
  23. }
  24.  
  25. function expensiveThing(): ExpensiveThing {
  26. console.log('computing expensive thing');
  27. return { bar: 1, baz: 1 };
  28. }
  29. const getExpensiveThing = memoize(expensiveThing);
  30.  
  31. function tt() {
  32. console.log(getExpensiveThing());
  33. console.log(getExpensiveThing());
  34. }
  35. tt();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement