mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-08-29 11:12:23 +08:00
lodash: use intersection types for _.memoize, support _.memoize.Cache
This commit is contained in:
Vendored
+5
-4
@@ -9601,16 +9601,17 @@ declare module _ {
|
||||
* @param resolver The function to resolve the cache key.
|
||||
* @return Returns the new memoizing function.
|
||||
*/
|
||||
memoize<TResult extends MemoizedFunction>(
|
||||
func: Function,
|
||||
resolver?: Function): TResult;
|
||||
memoize: {
|
||||
<T extends Function>(func: T, resolver?: Function): T & MemoizedFunction;
|
||||
Cache: MapCache;
|
||||
}
|
||||
}
|
||||
|
||||
interface LoDashImplicitObjectWrapper<T> {
|
||||
/**
|
||||
* @see _.memoize
|
||||
*/
|
||||
memoize<TResult extends MemoizedFunction>(resolver?: Function): LoDashImplicitObjectWrapper<TResult>;
|
||||
memoize(resolver?: Function): LoDashImplicitObjectWrapper<T & MemoizedFunction>;
|
||||
}
|
||||
|
||||
//_.modArgs
|
||||
|
||||
+21
-10
@@ -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 = <TestMemoizedResultFn>_.memoize<TestMemoizedResultFn>(testMemoizeFn);
|
||||
result = <TestMemoizedResultFn>_.memoize<TestMemoizedResultFn>(testMemoizeFn, testMemoizeResolverFn);
|
||||
result = <TestMemoizedResultFn>(_(testMemoizeFn).memoize<TestMemoizedResultFn>().value());
|
||||
result = <TestMemoizedResultFn>(_(testMemoizeFn).memoize<TestMemoizedResultFn>(testMemoizeResolverFn).value());
|
||||
|
||||
// _.modArgs
|
||||
module TestModArgs {
|
||||
|
||||
+21
-10
@@ -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 = <TestMemoizedResultFn>_.memoize<TestMemoizedResultFn>(testMemoizeFn);
|
||||
result = <TestMemoizedResultFn>_.memoize<TestMemoizedResultFn>(testMemoizeFn, testMemoizeResolverFn);
|
||||
result = <TestMemoizedResultFn>(_(testMemoizeFn).memoize<TestMemoizedResultFn>().value());
|
||||
result = <TestMemoizedResultFn>(_(testMemoizeFn).memoize<TestMemoizedResultFn>(testMemoizeResolverFn).value());
|
||||
|
||||
// _.overArgs
|
||||
module TestOverArgs {
|
||||
|
||||
Vendored
+5
-4
@@ -8987,16 +8987,17 @@ declare module _ {
|
||||
* @param resolver The function to resolve the cache key.
|
||||
* @return Returns the new memoizing function.
|
||||
*/
|
||||
memoize<TResult extends MemoizedFunction>(
|
||||
func: Function,
|
||||
resolver?: Function): TResult;
|
||||
memoize: {
|
||||
<T extends Function>(func: T, resolver?: Function): T & MemoizedFunction;
|
||||
Cache: MapCache;
|
||||
}
|
||||
}
|
||||
|
||||
interface LoDashImplicitObjectWrapper<T> {
|
||||
/**
|
||||
* @see _.memoize
|
||||
*/
|
||||
memoize<TResult extends MemoizedFunction>(resolver?: Function): LoDashImplicitObjectWrapper<TResult>;
|
||||
memoize(resolver?: Function): LoDashImplicitObjectWrapper<T & MemoizedFunction>;
|
||||
}
|
||||
|
||||
//_.overArgs (was _.modArgs)
|
||||
|
||||
Reference in New Issue
Block a user