mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-09-09 11:13:57 +08:00
Merge pull request #7435 from chrootsu/lodash-wrap
lodash: signatures of _.wrap have been changed
This commit is contained in:
+83
-5
@@ -5812,11 +5812,89 @@ module TestThrottle {
|
||||
}
|
||||
}
|
||||
|
||||
var helloWrap = function (name: string) { return 'hello ' + name; };
|
||||
var helloWrap2 = _.wrap(helloWrap, function (func) {
|
||||
return 'before, ' + func('moe') + ', after';
|
||||
});
|
||||
helloWrap2();
|
||||
// _.wrap
|
||||
module TestWrap {
|
||||
type SampleValue = {a: number; b: string; c: boolean}
|
||||
type SampleResult = (arg2: number, arg3: string) => boolean;
|
||||
|
||||
{
|
||||
type SampleWrapper = (arg1: SampleValue, arg2: number, arg3: string) => boolean;
|
||||
|
||||
let value: SampleValue;
|
||||
let wrapper: SampleWrapper;
|
||||
let result: SampleResult;
|
||||
|
||||
result = _.wrap<SampleValue, SampleWrapper, SampleResult>(value, wrapper);
|
||||
result = _.wrap<SampleValue, SampleResult>(value, wrapper);
|
||||
result = _.wrap<SampleResult>(value, wrapper);
|
||||
}
|
||||
|
||||
{
|
||||
type SampleWrapper = (arg1: number, arg2: number, arg3: string) => boolean;
|
||||
|
||||
let value: number;
|
||||
let wrapper: SampleWrapper;
|
||||
let result: _.LoDashImplicitObjectWrapper<SampleResult>;
|
||||
|
||||
result = _(value).wrap<SampleWrapper, SampleResult>(wrapper);
|
||||
result = _(value).wrap<SampleResult>(wrapper);
|
||||
}
|
||||
|
||||
{
|
||||
type SampleWrapper = (arg1: number[], arg2: number, arg3: string) => boolean;
|
||||
|
||||
let value: number[];
|
||||
let wrapper: SampleWrapper;
|
||||
let result: _.LoDashImplicitObjectWrapper<SampleResult>;
|
||||
|
||||
result = _(value).wrap<SampleWrapper, SampleResult>(wrapper);
|
||||
result = _(value).wrap<SampleResult>(wrapper);
|
||||
}
|
||||
|
||||
{
|
||||
type SampleWrapper = (arg1: SampleValue, arg2: number, arg3: string) => boolean;
|
||||
|
||||
let value: SampleValue;
|
||||
let wrapper: SampleWrapper;
|
||||
let result: _.LoDashImplicitObjectWrapper<SampleResult>;
|
||||
|
||||
result = _(value).wrap<SampleWrapper, SampleResult>(wrapper);
|
||||
result = _(value).wrap<SampleResult>(wrapper);
|
||||
}
|
||||
|
||||
{
|
||||
type SampleWrapper = (arg1: number, arg2: number, arg3: string) => boolean;
|
||||
|
||||
let value: number;
|
||||
let wrapper: SampleWrapper;
|
||||
let result: _.LoDashExplicitObjectWrapper<SampleResult>;
|
||||
|
||||
result = _(value).chain().wrap<SampleWrapper, SampleResult>(wrapper);
|
||||
result = _(value).chain().wrap<SampleResult>(wrapper);
|
||||
}
|
||||
|
||||
{
|
||||
type SampleWrapper = (arg1: number[], arg2: number, arg3: string) => boolean;
|
||||
|
||||
let value: number[];
|
||||
let wrapper: SampleWrapper;
|
||||
let result: _.LoDashExplicitObjectWrapper<SampleResult>;
|
||||
|
||||
result = _(value).chain().wrap<SampleWrapper, SampleResult>(wrapper);
|
||||
result = _(value).chain().wrap<SampleResult>(wrapper);
|
||||
}
|
||||
|
||||
{
|
||||
type SampleWrapper = (arg1: SampleValue, arg2: number, arg3: string) => boolean;
|
||||
|
||||
let value: SampleValue;
|
||||
let wrapper: SampleWrapper;
|
||||
let result: _.LoDashExplicitObjectWrapper<SampleResult>;
|
||||
|
||||
result = _(value).chain().wrap<SampleWrapper, SampleResult>(wrapper);
|
||||
result = _(value).chain().wrap<SampleResult>(wrapper);
|
||||
}
|
||||
}
|
||||
|
||||
/********
|
||||
* Lang *
|
||||
|
||||
Vendored
+99
-9
@@ -9614,16 +9614,106 @@ declare module _ {
|
||||
//_.wrap
|
||||
interface LoDashStatic {
|
||||
/**
|
||||
* Creates a function that provides value to the wrapper function as its first argument.
|
||||
* Additional arguments provided to the function are appended to those provided to the
|
||||
* wrapper function. The wrapper is executed with the this binding of the created function.
|
||||
* @param value The value to wrap.
|
||||
* @param wrapper The wrapper function.
|
||||
* @return The new function.
|
||||
**/
|
||||
wrap(
|
||||
* Creates a function that provides value to the wrapper function as its first argument. Any additional
|
||||
* arguments provided to the function are appended to those provided to the wrapper function. The wrapper is
|
||||
* invoked with the this binding of the created function.
|
||||
*
|
||||
* @param value The value to wrap.
|
||||
* @param wrapper The wrapper function.
|
||||
* @return Returns the new function.
|
||||
*/
|
||||
wrap<V, W extends Function, R extends Function>(
|
||||
value: V,
|
||||
wrapper: W
|
||||
): R;
|
||||
|
||||
/**
|
||||
* @see _.wrap
|
||||
*/
|
||||
wrap<V, R extends Function>(
|
||||
value: V,
|
||||
wrapper: Function
|
||||
): R;
|
||||
|
||||
/**
|
||||
* @see _.wrap
|
||||
*/
|
||||
wrap<R extends Function>(
|
||||
value: any,
|
||||
wrapper: (func: Function, ...args: any[]) => any): Function;
|
||||
wrapper: Function
|
||||
): R;
|
||||
}
|
||||
|
||||
interface LoDashImplicitWrapper<T> {
|
||||
/**
|
||||
* @see _.wrap
|
||||
*/
|
||||
wrap<W extends Function, R extends Function>(wrapper: W): LoDashImplicitObjectWrapper<R>;
|
||||
|
||||
/**
|
||||
* @see _.wrap
|
||||
*/
|
||||
wrap<R extends Function>(wrapper: Function): LoDashImplicitObjectWrapper<R>;
|
||||
}
|
||||
|
||||
interface LoDashImplicitArrayWrapper<T> {
|
||||
/**
|
||||
* @see _.wrap
|
||||
*/
|
||||
wrap<W extends Function, R extends Function>(wrapper: W): LoDashImplicitObjectWrapper<R>;
|
||||
|
||||
/**
|
||||
* @see _.wrap
|
||||
*/
|
||||
wrap<R extends Function>(wrapper: Function): LoDashImplicitObjectWrapper<R>;
|
||||
}
|
||||
|
||||
interface LoDashImplicitObjectWrapper<T> {
|
||||
/**
|
||||
* @see _.wrap
|
||||
*/
|
||||
wrap<W extends Function, R extends Function>(wrapper: W): LoDashImplicitObjectWrapper<R>;
|
||||
|
||||
/**
|
||||
* @see _.wrap
|
||||
*/
|
||||
wrap<R extends Function>(wrapper: Function): LoDashImplicitObjectWrapper<R>;
|
||||
}
|
||||
|
||||
interface LoDashExplicitWrapper<T> {
|
||||
/**
|
||||
* @see _.wrap
|
||||
*/
|
||||
wrap<W extends Function, R extends Function>(wrapper: W): LoDashExplicitObjectWrapper<R>;
|
||||
|
||||
/**
|
||||
* @see _.wrap
|
||||
*/
|
||||
wrap<R extends Function>(wrapper: Function): LoDashExplicitObjectWrapper<R>;
|
||||
}
|
||||
|
||||
interface LoDashExplicitArrayWrapper<T> {
|
||||
/**
|
||||
* @see _.wrap
|
||||
*/
|
||||
wrap<W extends Function, R extends Function>(wrapper: W): LoDashExplicitObjectWrapper<R>;
|
||||
|
||||
/**
|
||||
* @see _.wrap
|
||||
*/
|
||||
wrap<R extends Function>(wrapper: Function): LoDashExplicitObjectWrapper<R>;
|
||||
}
|
||||
|
||||
interface LoDashExplicitObjectWrapper<T> {
|
||||
/**
|
||||
* @see _.wrap
|
||||
*/
|
||||
wrap<W extends Function, R extends Function>(wrapper: W): LoDashExplicitObjectWrapper<R>;
|
||||
|
||||
/**
|
||||
* @see _.wrap
|
||||
*/
|
||||
wrap<R extends Function>(wrapper: Function): LoDashExplicitObjectWrapper<R>;
|
||||
}
|
||||
|
||||
/********
|
||||
|
||||
Reference in New Issue
Block a user