Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const _getExpensiveThing = () => {
- const c: any = getExpensiveThing;
- if (c.cache) {
- return c.cache;
- }
- c.cache = expensiveThing();
- return c.cache;
- }
- function memoize<T>(fn: () => T) {
- let cache: T | undefined = undefined;
- return () => {
- if (cache === undefined) {
- cache = fn();
- }
- return cache;
- };
- }
- interface ExpensiveThing {
- bar: number;
- baz: number;
- }
- function expensiveThing(): ExpensiveThing {
- console.log('computing expensive thing');
- return { bar: 1, baz: 1 };
- }
- const getExpensiveThing = memoize(expensiveThing);
- function tt() {
- console.log(getExpensiveThing());
- console.log(getExpensiveThing());
- }
- tt();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement