diff --git a/lodash/lodash-3.10.d.ts b/lodash/lodash-3.10.d.ts index cd63bb772..5e96e2fda 100644 --- a/lodash/lodash-3.10.d.ts +++ b/lodash/lodash-3.10.d.ts @@ -9601,16 +9601,17 @@ declare module _ { * @param resolver The function to resolve the cache key. * @return Returns the new memoizing function. */ - memoize( - func: Function, - resolver?: Function): TResult; + memoize: { + (func: T, resolver?: Function): T & MemoizedFunction; + Cache: MapCache; + } } interface LoDashImplicitObjectWrapper { /** * @see _.memoize */ - memoize(resolver?: Function): LoDashImplicitObjectWrapper; + memoize(resolver?: Function): LoDashImplicitObjectWrapper; } //_.modArgs diff --git a/lodash/lodash-tests-3.10.ts b/lodash/lodash-tests-3.10.ts index a021f9ec3..3399f71fe 100644 --- a/lodash/lodash-tests-3.10.ts +++ b/lodash/lodash-tests-3.10.ts @@ -5959,17 +5959,28 @@ module TestFlowRight { } // _.memoize -var testMemoizedFunction: _.MemoizedFunction; -result = <_.MapCache>testMemoizedFunction.cache; -interface TestMemoizedResultFn extends _.MemoizedFunction { - (...args: any[]): any; +namespace TestMemoize { + var testMemoizedFunction: _.MemoizedFunction; + var cache = <_.MapCache>testMemoizedFunction.cache; + interface TestMemoizedResultFn extends _.MemoizedFunction { + (a1: string, a2: number): boolean; + } + var testMemoizeFn = (a1: string, a2: number) => a1.length > a2; + var testMemoizeResolverFn = (a1: string, a2: number) => a1 + a2; + var result: TestMemoizedResultFn; + result = _.memoize(testMemoizeFn); + result = _.memoize(testMemoizeFn, testMemoizeResolverFn); + result = _(testMemoizeFn).memoize().value(); + result = _(testMemoizeFn).memoize(testMemoizeResolverFn).value(); + result('foo', 1); + result.cache.get('foo1'); + _.memoize.Cache = { + delete: key => false, + get: key => undefined, + has: key => false, + set(key, value) { return this; } + }; } -var testMemoizeFn: (...args: any[]) => any; -var testMemoizeResolverFn: (...args: any[]) => any; -result = _.memoize(testMemoizeFn); -result = _.memoize(testMemoizeFn, testMemoizeResolverFn); -result = (_(testMemoizeFn).memoize().value()); -result = (_(testMemoizeFn).memoize(testMemoizeResolverFn).value()); // _.modArgs module TestModArgs { diff --git a/lodash/lodash-tests.ts b/lodash/lodash-tests.ts index ed683b729..5c5244358 100644 --- a/lodash/lodash-tests.ts +++ b/lodash/lodash-tests.ts @@ -5201,17 +5201,28 @@ module TestFlowRight { } // _.memoize -var testMemoizedFunction: _.MemoizedFunction; -result = <_.MapCache>testMemoizedFunction.cache; -interface TestMemoizedResultFn extends _.MemoizedFunction { - (...args: any[]): any; +namespace TestMemoize { + var testMemoizedFunction: _.MemoizedFunction; + var cache = <_.MapCache>testMemoizedFunction.cache; + interface TestMemoizedResultFn extends _.MemoizedFunction { + (a1: string, a2: number): boolean; + } + var testMemoizeFn = (a1: string, a2: number) => a1.length > a2; + var testMemoizeResolverFn = (a1: string, a2: number) => a1 + a2; + var result: TestMemoizedResultFn; + result = _.memoize(testMemoizeFn); + result = _.memoize(testMemoizeFn, testMemoizeResolverFn); + result = _(testMemoizeFn).memoize().value(); + result = _(testMemoizeFn).memoize(testMemoizeResolverFn).value(); + result('foo', 1); + result.cache.get('foo1'); + _.memoize.Cache = { + delete: key => false, + get: key => undefined, + has: key => false, + set(key, value) { return this; } + }; } -var testMemoizeFn: (...args: any[]) => any; -var testMemoizeResolverFn: (...args: any[]) => any; -result = _.memoize(testMemoizeFn); -result = _.memoize(testMemoizeFn, testMemoizeResolverFn); -result = (_(testMemoizeFn).memoize().value()); -result = (_(testMemoizeFn).memoize(testMemoizeResolverFn).value()); // _.overArgs module TestOverArgs { diff --git a/lodash/lodash.d.ts b/lodash/lodash.d.ts index 0c60cf39d..b6e884fc9 100644 --- a/lodash/lodash.d.ts +++ b/lodash/lodash.d.ts @@ -8987,16 +8987,17 @@ declare module _ { * @param resolver The function to resolve the cache key. * @return Returns the new memoizing function. */ - memoize( - func: Function, - resolver?: Function): TResult; + memoize: { + (func: T, resolver?: Function): T & MemoizedFunction; + Cache: MapCache; + } } interface LoDashImplicitObjectWrapper { /** * @see _.memoize */ - memoize(resolver?: Function): LoDashImplicitObjectWrapper; + memoize(resolver?: Function): LoDashImplicitObjectWrapper; } //_.overArgs (was _.modArgs)