@types/underscore
- Version 1.13.0
- Published
- 258 kB
- No dependencies
- MIT license
Install
npm i @types/underscore
yarn add @types/underscore
pnpm add @types/underscore
Overview
TypeScript definitions for underscore
Index
Interfaces
Underscore
- after()
- all
- allKeys()
- any
- before()
- bind()
- bindAll()
- chain()
- chunk()
- clone()
- collect
- compact()
- compose()
- constant()
- contains()
- countBy()
- create()
- debounce()
- defaults()
- defer()
- delay()
- detect
- difference()
- drop
- each()
- escape()
- every()
- extend()
- filter()
- find()
- findIndex()
- findKey()
- findLastIndex()
- findWhere()
- first()
- flatten()
- foldl
- foldr
- forEach
- functions()
- get()
- groupBy()
- has()
- head
- identity()
- include
- includes
- indexBy()
- indexOf()
- initial()
- inject
- intersection()
- invert()
- invoke()
- isArguments()
- isArray()
- isArrayBuffer()
- isBoolean()
- isDataView()
- isDate()
- isElement()
- isEmpty()
- isEqual()
- isError()
- isFinite()
- isFunction()
- isMap()
- isMatch()
- isNaN()
- isNull()
- isNumber()
- isObject()
- isRegExp()
- isSet()
- isString()
- isSymbol()
- isTypedArray()
- isUndefined()
- isWeakMap()
- isWeakSet()
- iteratee()
- keys()
- last()
- lastIndexOf()
- map()
- mapObject()
- matcher()
- matches()
- max()
- memoize()
- methods()
- min()
- mixin()
- negate()
- noop()
- object()
- omit()
- once()
- pairs()
- partial()
- partition()
- pick()
- pluck()
- property()
- propertyOf()
- random()
- range()
- reduce()
- reduceRight()
- reject()
- rest()
- restArgs()
- result()
- sample()
- select
- shuffle()
- size()
- some()
- sortBy()
- sortedIndex()
- tail
- take
- tap()
- template()
- throttle()
- times()
- toArray()
- toPath()
- transpose()
- unescape()
- union()
- uniq()
- unique
- uniqueId()
- unzip()
- value()
- values()
- where()
- without()
- wrap()
- zip()
UnderscoreStatic
- after()
- all
- allKeys()
- any
- assign()
- before()
- bind()
- bindAll()
- chain()
- chunk()
- clone()
- collect
- compact()
- compose()
- constant()
- contains()
- countBy()
- create()
- debounce()
- defaults()
- defer()
- delay()
- detect
- difference()
- drop
- each()
- escape()
- every()
- extend()
- extendOwn()
- filter()
- find()
- findIndex()
- findKey()
- findLastIndex()
- findWhere()
- first()
- flatten()
- foldl
- foldr
- forEach
- functions()
- get()
- groupBy()
- has()
- head
- identity()
- include
- includes
- indexBy()
- indexOf()
- initial()
- inject
- intersection()
- invert()
- invoke()
- isArguments()
- isArray()
- isArrayBuffer()
- isBoolean()
- isDataView()
- isDate()
- isElement()
- isEmpty()
- isEqual()
- isError()
- isFinite()
- isFunction()
- isMap()
- isMatch()
- isNaN()
- isNull()
- isNumber()
- isObject()
- isRegExp()
- isSet()
- isString()
- isSymbol()
- isTypedArray()
- isUndefined()
- isWeakMap()
- isWeakSet()
- iteratee()
- keys()
- last()
- lastIndexOf()
- map()
- mapObject()
- matcher()
- matches()
- max()
- memoize()
- methods()
- min()
- mixin()
- negate()
- noConflict()
- noop()
- now()
- object()
- omit()
- once()
- pairs()
- partial()
- partition()
- pick()
- pluck()
- property()
- propertyOf()
- random()
- range()
- reduce()
- reduceRight()
- reject()
- rest()
- restArgs()
- result()
- sample()
- select
- shuffle()
- size()
- some()
- sortBy()
- sortedIndex()
- tail
- take
- tap()
- template()
- templateSettings
- throttle()
- times()
- toArray()
- toPath()
- transpose()
- unescape()
- union()
- uniq()
- unique
- uniqueId()
- unzip()
- values()
- VERSION
- where()
- without()
- wrap()
- zip()
Type Aliases
Namespaces
Interfaces
interface Cancelable
interface Cancelable {}
method cancel
cancel: () => void;
interface CollectionIterator
interface CollectionIterator< T extends TypeOfList<V> | TypeOfDictionary<V, any>, TResult, V = Collection<T>> {}
call signature
(element: T, key: CollectionKey<V>, collection: V): TResult;
interface CompiledTemplate
interface CompiledTemplate {}
property source
source: string;
call signature
(data?: any): string;
interface Dictionary
interface Dictionary<T> {}
index signature
[index: string]: T;
interface List
interface List<T> {}
property length
length: number;
index signature
[index: number]: T;
interface ListIterator
interface ListIterator<T extends TypeOfList<V>, TResult, V = List<T>> extends CollectionIterator<T, TResult, V> {}
interface MemoCollectionIterator
interface MemoCollectionIterator< T extends TypeOfList<V> | TypeOfDictionary<V, any>, TResult, V = Collection<T>> {}
call signature
(prev: TResult, curr: T, key: CollectionKey<V>, collection: V): TResult;
interface MemoIterator
interface MemoIterator<T extends TypeOfList<V>, TResult, V = List<T>> extends MemoCollectionIterator<T, TResult, V> {}
interface MemoObjectIterator
interface MemoObjectIterator< T extends TypeOfDictionary<V>, TResult, V = Dictionary<T>> extends MemoCollectionIterator<T, TResult, V> {}
interface ObjectIterator
interface ObjectIterator< T extends TypeOfDictionary<V, any>, TResult, V = Dictionary<T>> extends CollectionIterator<T, TResult, V> {}
interface Predicate
interface Predicate<T> {}
call signature
(value: T): boolean;
interface TemplateSettings
interface TemplateSettings {}
underscore.js template settings, set templateSettings or pass as an argument to 'template()' to override defaults.
property escape
escape?: RegExp | undefined;
Default value is '/<%-([\s\S]+?)%>/g'.
property evaluate
evaluate?: RegExp | undefined;
Default value is '/<%([\s\S]+?)%>/g'.
property interpolate
interpolate?: RegExp | undefined;
Default value is '/<%=([\s\S]+?)%>/g'.
property variable
variable?: string | undefined;
By default, 'template()' places the values from your data in the local scope via the 'with' statement. However, you can specify a single variable name with this setting.
interface ThrottleSettings
interface ThrottleSettings {}
underscore.js _.throttle options.
interface Underscore
interface Underscore<T, V = T[]> {}
property all
all: Underscore<T, V>['every'];
See Also
every
property any
any: Underscore<T, V>['some'];
See Also
some
property collect
collect: Underscore<T, V>['map'];
See Also
map
property detect
detect: Underscore<T, V>['find'];
See Also
find
property drop
drop: Underscore<T, V>['rest'];
See Also
rest
property foldl
foldl: Underscore<T, V>['reduce'];
See Also
reduce
property foldr
foldr: Underscore<T, V>['reduceRight'];
See Also
reduceRight
property forEach
forEach: Underscore<T, V>['each'];
See Also
each
property head
head: Underscore<T, V>['first'];
See Also
first
property include
include: Underscore<T, V>['contains'];
See Also
contains
property includes
includes: Underscore<T, V>['contains'];
See Also
contains
property inject
inject: Underscore<T, V>['reduce'];
See Also
reduce
property select
select: Underscore<T, V>['filter'];
See Also
filter
property tail
tail: Underscore<T, V>['rest'];
See Also
rest
property take
take: Underscore<T, V>['first'];
See Also
first
property unique
unique: Underscore<T, V>['uniq'];
See Also
uniq
method after
after: (fn: Function) => Function;
Wrapped type
number
.See Also
_.after
method allKeys
allKeys: () => string[];
Wrapped type
object
.See Also
_.allKeys
method before
before: (fn: Function) => Function;
Wrapped type
number
.See Also
_.before
method bind
bind: (object: any, ...args: any[]) => Function;
Wrapped type
Function
.See Also
_.bind
method bindAll
bindAll: (...methodNames: string[]) => any;
Wrapped type
object
.See Also
_.bindAll
method chain
chain: () => _Chain<T, V>;
Returns a wrapped object. Calling methods on this object will continue to return wrapped objects until value() is used.
Returns
An underscore chain wrapper around the wrapped value.
method chunk
chunk: (length: number) => T[][];
Chunks the wrapped list into multiple arrays, each containing
length
or fewer items.Parameter length
The maximum size of the chunks.
Returns
The contents of the wrapped list in chunks no greater than
length
in size.
method clone
clone: () => T;
Wrapped type
any[]
.See Also
_.clone
method compact
compact: () => Array<Truthy<T>>;
Returns a copy of the wrapped list with all falsy values removed. In JavaScript, false, null, 0, "", undefined and NaN are all falsy.
Returns
An array containing the elements of the wrapped list without falsy values.
method compose
compose: (...functions: Function[]) => Function;
Wrapped type
Function[]
.See Also
_.compose
method constant
constant: () => () => T;
Wrapped type
any
.See Also
_.constant
method contains
contains: (value: any, fromIndex?: number) => boolean;
Returns true if the value is present in the wrapped collection. Uses indexOf internally, if the wrapped collection is a List. Use
fromIndex
to start your search at a given index.Parameter value
The value to check the wrapped collection for.
Parameter fromIndex
The index to start searching from, optional, default = 0, only used when the wrapped collection is a List.
Returns
True if
value
is present in the wrapped collection afterfromIndex
, otherwise false.
method countBy
countBy: ( iteratee?: Iteratee<V, string | number>, context?: any) => Dictionary<number>;
Sorts the wrapped collection into groups and returns a count for the number of objects in each group. Similar to
groupBy
, but instead of returning a list of values, returns a count for the number of values in that group.Parameter iteratee
An iteratee that provides the value to count by for each item in the wrapped collection.
Parameter context
this
object initeratee
, optional.Returns
A dictionary with the group names provided by
iteratee
as properties where each property contains the count of the grouped elements from the wrapped collection.
method create
create: (props?: object) => any;
Wrapped type
any
.See Also
_.create
method debounce
debounce: (wait: number, immediate?: boolean) => Function & _.Cancelable;
Wrapped type
Function
.See Also
_.debounce
method defaults
defaults: (...defaults: any[]) => any;
Wrapped type
object
.See Also
_.defaults
method defer
defer: (...args: any[]) => void;
Wrapped type
Function
.See Also
_.defer
method delay
delay: { (wait: number, ...args: any[]): any; (...args: any[]): any };
Wrapped type
Function
.See Also
_.delay
See Also
_.delay
method difference
difference: (...others: Array<List<T>>) => T[];
Similar to without, but returns the values from the wrapped list that are not present in
others
.Parameter list
The starting list.
Parameter others
The lists of values to exclude from the wrapped list.
Returns
The contents of the wrapped list without the values in
others
.
method each
each: ( iteratee: CollectionIterator<TypeOfCollection<V>, void, V>, context?: any) => V;
Iterates over the wrapped collection of elements, yielding each in turn to an
iteratee
. Theiteratee
is bound to the context object, if one is passed.Parameter iteratee
The iteratee to call for each element in the wrapped collection.
Parameter context
'this' object in
iteratee
, optional.Returns
The originally wrapped collection.
method escape
escape: () => string;
Wrapped type
string
.See Also
_.escape
method every
every: (iteratee?: Iteratee<V, boolean>, context?: any) => boolean;
Returns true if all of the values in the wrapped collection pass the
iteratee
truth test. Short-circuits and stops traversing the wrapped collection if a false element is found.Parameter iteratee
The truth test to apply.
Parameter context
this
object initeratee
, optional.Returns
True if all elements pass the truth test, otherwise false.
method extend
extend: (...sources: any[]) => any;
Wrapped type
object
.See Also
_.extend
method filter
filter: (iteratee?: Iteratee<V, boolean>, context?: any) => T[];
Looks through each value in the wrapped collection, returning an array of all the values that pass a truth test (
iteratee
).Parameter iteratee
The truth test to apply.
Parameter context
this
object initeratee
, optional.Returns
The set of values that pass the truth test.
method find
find: (iteratee?: Iteratee<V, boolean>, context?: any) => T | undefined;
Looks through each value in the wrapped collection, returning the first one that passes a truth test (
iteratee
), or undefined if no value passes the test. The function returns as soon as it finds an acceptable element, and doesn't traverse the entire collection.Parameter iteratee
The truth test to apply.
Parameter context
this
object initeratee
, optional.Returns
The first element in the wrapped collection that passes the truth test or undefined if no elements pass.
method findIndex
findIndex: (iteratee?: Iteratee<V, boolean>, context?: any) => number;
Returns the first index of an element in the wrapped list where the
iteratee
truth test passes, otherwise returns -1.Parameter iteratee
The truth test to apply.
Parameter context
this
object initeratee
, optional.Returns
The index of the first element in the wrapped list where the truth test passes or -1 if no elements pass.
method findKey
findKey: ( iteratee?: Iteratee<V, boolean, TypeOfCollection<V, any>>, context?: any) => Extract<keyof V, string> | undefined;
Similar to
findIndex
but for keys in objects. Returns the key where theiteratee
truth test passes or undefined.Parameter iteratee
The truth test to apply.
Parameter context
this
object initeratee
, optional.Returns
The first element in the wrapped object that passes the truth test or undefined if no elements pass.
method findLastIndex
findLastIndex: (iteratee?: Iteratee<V, boolean>, context?: any) => number;
Returns the last index of an element in the wrapped list where the
iteratee
truth test passes, otherwise returns -1.Parameter iteratee
The truth test to apply.
Parameter context
this
object initeratee
, optional.Returns
The index of the last element in the wrapped list where the truth test passes or -1 if no elements pass.
method findWhere
findWhere: (properties: Partial<T>) => T | undefined;
Looks through the wrapped collection and returns the first value that matches all of the key-value pairs listed in
properties
. If no match is found, or if list is empty, undefined will be returned.Parameter properties
The properties to check for on the elements within the wrapped collection.
Returns
The first element in the wrapped collection that matches
properties
or undefined if no match is found.
method first
first: { (): T | undefined; (n: number): T[] };
Returns the first element of the wrapped list. Passing
n
will return the firstn
elements of the wrapped list.Parameter n
The number of elements to retrieve, optional.
Returns
The first
n
elements of the wrapped list or the first element ifn
is omitted.
method flatten
flatten: { (depth: 1 | true): Array<ListItemOrSelf<T>>; (depth?: number | false): DeepestListItemOrSelf<T>[];};
Flattens a nested list (the nesting can be to any depth). If you pass depth, the wrapped list will only be flattened a single level.
Parameter depth
True to only flatten one level, optional, default = false.
Returns
The flattened list.
method functions
functions: () => string[];
Wrapped type
object
.See Also
_.functions
method get
get: { (path: string): TypeOfCollection<V> | undefined; <U>(path: string, defaultValue?: U): TypeOfCollection<V, never> | U; <P extends (string | number)[], U = undefined>( path: [...P], defaultValue?: U ): U | DeepTypeOfCollection<V, P>;};
Wrapped type
any
.See Also
_.get
method groupBy
groupBy: ( iteratee?: Iteratee<V, string | number>, context?: any) => Dictionary<T[]>;
Splits the warpped collection into sets that are grouped by the result of running each value through
iteratee
.Parameter iteratee
An iteratee that provides the value to group by for each item in the wrapped collection.
Parameter context
this
object initeratee
, optional.Returns
A dictionary with the group names provided by
iteratee
as properties where each property contains the grouped elements from the wrapped collection.
method has
has: (key: string) => boolean;
Wrapped type
object
.See Also
_.has
method identity
identity: () => any;
Wrapped type
any
.See Also
_.identity
method indexBy
indexBy: ( iteratee?: Iteratee<V, string | number>, context?: any) => Dictionary<T>;
Given the warpped collection and an
iteratee
function that returns a key for each element in the wrapped collection, returns an object that acts as an index of each item. Just likegroupBy
, but for when you know your keys are unique.Parameter iteratee
An iteratee that provides the value to index by for each item in the wrapped collection.
Parameter context
this
object initeratee
, optional.Returns
A dictionary where each item in the wrapped collection is assigned to the property designated by
iteratee
.
method indexOf
indexOf: (value: T, isSortedOrFromIndex?: boolean | number) => number;
Returns the index at which
value
can be found in the wrapped list, or -1 ifvalue
is not present. If you're working with a large list and you know that the list is already sorted, pass true forisSortedOrFromIndex
to use a faster binary search...or, pass a number in order to look for the first matching value in the list after the given index.Parameter value
The value to search for within the wrapped list.
Parameter isSortedOrFromIndex
True if the wrapped list is already sorted OR the starting index for the search, optional.
Returns
The index of the first occurrence of
value
within the wrapped list or -1 ifvalue
is not found.
method initial
initial: (n?: number) => T[];
Returns everything but the last entry of the wrapped list. Especially useful on the arguments object. Pass
n
to exclude the lastn
elements from the result.Parameter n
The number of elements from the end of the wrapped list to omit, optional, default = 1.
Returns
The elements of the wrapped list with the last
n
items omitted.
method intersection
intersection: (...lists: Array<List<T>>) => T[];
Computes the list of values that are the intersection of the wrapped list and the passed-in
lists
. Each value in the result is present in each of the lists.Parameter lists
The lists (along with the wrapped list) to compute the intersection of.
Returns
The intersection of elements within the the wrapped list and
lists
.
method invert
invert: () => any;
Wrapped type
object
.See Also
_.invert
method invoke
invoke: (methodName: string, ...args: any[]) => any[];
Calls the method named by
methodName
on each value in the wrapped collection. Any extra arguments passed to invoke will be forwarded on to the method invocation.Parameter methodName
The name of the method to call on each element in the wrapped collection.
Parameter args
Additional arguments to pass to method
methodName
.Returns
An array containing the result of the method call for each item in the wrapped collection.
method isArguments
isArguments: () => boolean;
Returns true if the wrapped object is an Arguments object.
Returns
True if the wrapped object is an Arguments object, otherwise false.
method isArray
isArray: () => boolean;
Returns true if the wrapped object is an Array.
Returns
True if the wrapped object is an Array, otherwise false.
method isArrayBuffer
isArrayBuffer: () => boolean;
Returns true if the wrapped object is an ArrayBuffer.
Returns
True if the wrapped object is an ArrayBuffer, otherwise false.
method isBoolean
isBoolean: () => boolean;
Returns true if the wrapped object is a Boolean.
Returns
True if the wrapped object is a Boolean, otherwise false.
method isDataView
isDataView: () => boolean;
Returns true if the wrapped object is a DataView.
Returns
True if the wrapped object is a DataView, otherwise false.
method isDate
isDate: () => boolean;
Returns true if the wrapped object is a Date.
Returns
True if the wrapped object is a Date, otherwise false.
method isElement
isElement: () => boolean;
Returns true if the wrapped object is a DOM element.
Returns
True if the wrapped object is a DOM element, otherwise false.
method isEmpty
isEmpty: () => boolean;
Returns true if the wrapped collection contains no values. For strings and array-like objects checks if the length property is 0.
Returns
True if the wrapped collection has no elements.
method isEqual
isEqual: (other: any) => boolean;
Performs an optimized deep comparison between the wrapped object and
other
to determine if they should be considered equal.Parameter other
Compare to the wrapped object.
Returns
True if the wrapped object should be considered equal to
other
.
method isError
isError: () => boolean;
Returns true if the wrapped object is a Error.
Returns
True if the wrapped object is a Error, otherwise false.
method isFinite
isFinite: () => boolean;
Returns true if the wrapped object is a finite Number.
Returns
True if the wrapped object is a finite Number.
method isFunction
isFunction: () => boolean;
Returns true if the wrapped object is a Function.
Returns
True if the wrapped object is a Function, otherwise false.
method isMap
isMap: () => boolean;
Returns true if the wrapped object is a Map.
Returns
True if the wrapped object is a Map, otherwise false.
method isMatch
isMatch: (properties: any) => boolean;
Returns true if the keys and values in
properties
are contained in the wrapped object.Parameter properties
The properties to check for in the wrapped object.
Returns
True if all keys and values in
properties
are also in the wrapped object.
method isNaN
isNaN: () => boolean;
Returns true if the wrapped object is NaN. Note: this is not the same as the native isNaN function, which will also return true if the variable is undefined.
Returns
True if the wrapped object is NaN, otherwise false.
method isNull
isNull: () => boolean;
Returns true if the wrapped object is null.
Returns
True if the wrapped object is null, otherwise false.
method isNumber
isNumber: () => boolean;
Returns true if the wrapped object is a Number (including NaN).
Returns
True if the wrapped object is a Number, otherwise false.
method isObject
isObject: () => boolean;
Returns true if the wrapped object is an Object. Note that JavaScript arrays and functions are objects, while (normal) strings and numbers are not.
Returns
True if the wrapped object is an Object, otherwise false.
method isRegExp
isRegExp: () => boolean;
Returns true if the wrapped object is a RegExp.
Returns
True if the wrapped object is a RegExp, otherwise false.
method isSet
isSet: () => boolean;
Returns true if the wrapped object is a Set.
Returns
True if the wrapped object is a Set, otherwise false.
method isString
isString: () => boolean;
Returns true if the wrapped object is a String.
Returns
True if the wrapped object is a String, otherwise false.
method isSymbol
isSymbol: () => boolean;
Returns true if the wrapped object is a Symbol.
Returns
True if the wrapped object is a Symbol, otherwise false.
method isTypedArray
isTypedArray: () => boolean;
Returns true if the wrapped object is a TypedArray.
Returns
True if the wrapped object is a TypedArray, otherwise false.
method isUndefined
isUndefined: () => boolean;
Returns true if the wrapped object is undefined.
Returns
True if the wrapped object is undefined, otherwise false.
method isWeakMap
isWeakMap: () => boolean;
Returns true if the wrapped object is a WeakMap.
Returns
True if the wrapped object is a WeakMap, otherwise false.
method isWeakSet
isWeakSet: () => boolean;
Returns true if the wrapped object is a WeakSet.
Returns
True if the wrapped object is a WeakSet, otherwise false.
method iteratee
iteratee: (context?: any) => Function;
Wrapped type
string|Function|Object
.See Also
_.iteratee
method keys
keys: () => string[];
Wrapped type
object
.See Also
_.keys
method last
last: { (): T | undefined; (n: number): T[] };
Returns the last element of the wrapped list. Passing
n
will return the lastn
elements of the wrapped list.Parameter n
The number of elements to retrieve, optional.
Returns
The last
n
elements of the wrapped list or the last element ifn
is omitted.
method lastIndexOf
lastIndexOf: (value: T, fromIndex?: number) => number;
Returns the index of the last occurrence of
value
in the wrapped list, or -1 ifvalue
is not present. PassfromIndex
to start your search at a given index.Parameter value
The value to search for within the wrapped list.
Parameter fromIndex
The starting index for the search, optional.
Returns
The index of the last occurrence of
value
within the wrapped list or -1 ifvalue
is not found.
method map
map: <I extends Iteratee<V, any, TypeOfCollection<V, never>>>( iteratee: I, context?: any) => Array<IterateeResult<I, T>>;
Produces a new array of values by mapping each value in the wrapped collection through a transformation
iteratee
.Parameter iteratee
The iteratee to use to transform each item in the wrapped collection.
Parameter context
this
object initeratee
, optional.Returns
The mapped result.
method mapObject
mapObject: <I extends Iteratee<V, any, TypeOfCollection<V, any>>>( iteratee: I, context?: any) => { [K in keyof V]: IterateeResult<I, V[K]> };
Like map, but for objects. Transform the value of each property in turn.
Parameter iteratee
The iteratee to use to transform property values.
Parameter context
this
object initeratee
, optional.Returns
A new object with all of the wrapped object's property values transformed through
iteratee
.
method matcher
matcher: () => _.ListIterator<T, boolean>;
Wrapped type
any[]
.See Also
_.matcher
method matches
matches: () => _.ListIterator<T, boolean>;
Wrapped type
any[]
.See Also
_.matches
method max
max: (iteratee?: Iteratee<V, any>, context?: any) => T | number;
Returns the maximum value in the wrapped collection. If an
iteratee
is provided, it will be used on each element to generate the criterion by which the element is ranked. -Infinity is returned if list is empty. Non-numerical values returned byiteratee
will be ignored.Parameter iteratee
The iteratee that provides the criterion by which each element is ranked, optional if evaluating a collection of numbers.
Parameter context
this
object initeratee
, optional.Returns
The maximum element within the wrapped collection or -Infinity if the wrapped collection is empty.
method memoize
memoize: (hashFn?: (n: any) => string) => Function;
Wrapped type
Function
.See Also
_.memoize
method methods
methods: () => string[];
See Also
_.functions
method min
min: (iteratee?: Iteratee<V, any>, context?: any) => T | number;
Returns the minimum value in the wrapped collection. If an
iteratee
is provided, it will be used on each element to generate the criterion by which the element is ranked. Infinity is returned if list is empty. Non-numerical values returned byiteratee
will be ignored.Parameter iteratee
The iteratee that provides the criterion by which each element is ranked, optional if evaluating a collection of numbers.
Parameter context
this
object initeratee
, optional.Returns
The minimum element within the wrapped collection or Infinity if the wrapped collection is empty.
method mixin
mixin: () => void;
Wrapped type
object
.See Also
_.mixin
method negate
negate: () => (...args: any[]) => boolean;
Wrapped type
Function
.See Also
_.negate
method noop
noop: () => void;
Wrapped type
any
.See Also
_.noop
method object
object: { <TValue>(values: List<TValue>): Dictionary<TValue | undefined>; (): Dictionary<PairValue<T>>;};
Converts lists into objects. Call on either a wrapped list of [key, value] pairs, or a wrapped list of keys and a list of
values
. Passing by pairs is the reverse of pairs. If duplicate keys exist, the last value wins.Parameter values
If the wrapped list is a list of keys, a list of values corresponding to those keys.
Returns
An object comprised of the provided keys and values.
method omit
omit: { <K extends string>(...keys: Array<K | K[]>): _Omit<V, K>; (iterator: ObjectIterator<TypeOfDictionary<V, any>, boolean, V>): Partial<V>;};
Return a copy of the wrapped object that is filtered to omit the disallowed keys (or array of keys).
Parameter keys
The keys to omit from the wrapped object.
Returns
A copy of the wrapped object without the
keys
properties.Return a copy of the wrapped object that is filtered to not have values for the keys selected by a truth test.
Parameter iterator
A truth test that selects the keys to omit from the wrapped object.
Returns
A copy of the wrapped object without the keys selected by
iterator
.
method once
once: () => Function;
Wrapped type
Function
.See Also
_.once
method pairs
pairs: () => Array<[Extract<keyof V, string>, TypeOfCollection<V, any>]>;
Convert the wrapped object into a list of [key, value] pairs. The opposite of the single-argument signature of
_.object
.Returns
The list of [key, value] pairs from the wrapped object.
method partial
partial: (...args: any[]) => Function;
Wrapped type
Function
.See Also
_.partial
method partition
partition: (iteratee?: Iteratee<V, boolean>, context?: any) => [T[], T[]];
Splits the wrapped collection into two arrays: one whose elements all satisfy
iteratee
and one whose elements all do not satisfyiteratee
.Parameter iteratee
The iteratee that defines the partitioning scheme for each element in the wrapped collection.
Parameter context
this
object initeratee
, optional.Returns
An array composed of two elements, where the first element contains the elements in the wrapped collection that satisfied the predicate and the second element contains the elements that did not.
method pick
pick: { <K extends string>(...keys: Array<K | K[]>): _Pick<V, K>; (iterator: ObjectIterator<TypeOfDictionary<V, any>, boolean, V>): Partial<V>;};
Return a copy of the wrapped object that is filtered to only have values for the allowed keys (or array of keys).
Parameter keys
The keys to keep on the wrapped object.
Returns
A copy of the wrapped object with only the
keys
properties.Return a copy of the wrapped object that is filtered to only have values for the keys selected by a truth test.
Parameter iterator
A truth test that selects the keys to keep on the wrapped object.
Returns
A copy of the wrapped object with only the keys selected by
iterator
.
method pluck
pluck: <K extends string | number>( propertyName: K) => Array<PropertyTypeOrAny<T, K>>;
A convenient version of what is perhaps the most common use-case for map: extracting a list of property values.
Parameter propertyName
The name of a specific property to retrieve from all items in the wrapped collection.
Returns
The set of values for the specified
propertyName
for each item in the wrapped collection.
method property
property: () => (object: any) => any;
Wrapped type
string
.See Also
_.property
method propertyOf
propertyOf: () => (key: string) => any;
Wrapped type
object
.See Also
_.propertyOf
method random
random: { (): number; (max: number): number };
Wrapped type
number
.See Also
_.random
method range
range: (stop?: number, step?: number) => number[];
A function to create flexibly-numbered lists of integers, handy for
each
andmap
loops. Returns a list of integers from the wrapped value (inclusive) tostop
(exclusive), incremented (or decremented) bystep
. Note that ranges thatstop
before theystart
are considered to be zero-length instead of negative - if you'd like a negative range, use a negativestep
.If
stop
is not specified, the wrapped value will be the number to stop at and the default start of 0 will be used.Parameter stop
The number to stop at.
Parameter step
The number to count up by each iteration, optional, default = 1.
Returns
An array of numbers from start to
stop
with increments ofstep
.
method reduce
reduce: { <TResult>( iteratee: MemoCollectionIterator<TypeOfCollection<V>, TResult, V>, memo: TResult, context?: any ): TResult; <TResult = TypeOfCollection<V, never>>( iteratee: MemoCollectionIterator< TypeOfCollection<V, never>, TypeOfCollection<V, never> | TResult, V > ): TypeOfCollection<V, never> | TResult;};
Also known as inject and foldl, reduce boils down the wrapped collection of values into a single value.
memo
is the initial state of the reduction, and each successive step of it should be returned byiteratee
.If no memo is passed to the initial invocation of reduce,
iteratee
is not invoked on the first element of the wrapped collection. The first element is instead passed as the memo in the invocation ofiteratee
on the next element in the wrapped collection.Parameter iteratee
The function to call on each iteration to reduce the collection.
Parameter memo
The initial reduce state or undefined to use the first item in
collection
as initial state.Parameter context
this
object initeratee
, optional.Returns
The reduced result.
method reduceRight
reduceRight: { <TResult>( iteratee: MemoCollectionIterator<TypeOfCollection<V>, TResult, V>, memo: TResult, context?: any ): TResult; <TResult = TypeOfCollection<V, never>>( iteratee: MemoCollectionIterator< TypeOfCollection<V, never>, TypeOfCollection<V, never> | TResult, V > ): TypeOfCollection<V, never> | TResult;};
The right-associative version of reduce.
This is not as useful in JavaScript as it would be in a language with lazy evaluation.
Parameter iteratee
The function to call on each iteration to reduce the collection.
Parameter memo
The initial reduce state or undefined to use the first item in
collection
as the initial state.Parameter context
this
object initeratee
, optional.Returns
The reduced result.
method reject
reject: (iteratee?: Iteratee<V, boolean>, context?: any) => T[];
Returns the values in the wrapped collection without the elements that pass a truth test (
iteratee
). The opposite of filter.Parameter iteratee
The truth test to apply.
Parameter context
this
object initeratee
, optional.Returns
The set of values that fail the truth test.
method rest
rest: (n?: number) => T[];
Returns the rest of the elements in the wrapped list. Pass an
index
to return the values of the list from that index onward.Parameter index
The index to start retrieving elements from, optional, default = 1.
Returns
The elements of the wrapped list from
index
to the end of the list.
method restArgs
restArgs: (starIndex?: number) => Function;
Wrapped type
Function
.See Also
_.once
method result
result: (property: string, defaultValue?: any) => any;
Wrapped type
object
.See Also
_.result
method sample
sample: { (n: number): T[]; (): T };
Produce a random sample from the wrapped collection. Pass a number to return
n
random elements from the wrapped collection. Otherwise a single random item will be returned.Parameter n
The number of elements to sample from the wrapped collection.
Returns
A random sample of
n
elements from the wrapped collection or a single element ifn
is not specified.
method shuffle
shuffle: () => T[];
Returns a shuffled copy of the wrapped collection, using a version of the Fisher-Yates shuffle.
Returns
A shuffled copy of the wrapped collection.
method size
size: () => number;
Determines the number of values in the wrapped collection.
Returns
The number of values in the wrapped collection.
method some
some: (iteratee?: Iteratee<V, boolean>, context?: any) => boolean;
Returns true if any of the values in the wrapped collection pass the
iteratee
truth test. Short-circuits and stops traversing the wrapped collection if a true element is found.Parameter iteratee
The truth test to apply.
Parameter context
this
object initeratee
, optional.Returns
True if any element passed the truth test, otherwise false.
method sortBy
sortBy: (iteratee?: Iteratee<V, any>, context?: any) => T[];
Returns a (stably) sorted copy of the wrapped collection, ranked in ascending order by the results of running each value through
iteratee
.Parameter iteratee
An iteratee that provides the value to sort by for each item in the wrapped collection.
Parameter context
this
object initeratee
, optional.Returns
A sorted copy of the wrapped collection.
method sortedIndex
sortedIndex: ( value: T, iteratee?: Iteratee<V | undefined, any>, context?: any) => number;
Uses a binary search to determine the lowest index at which the value should be inserted into the wrapped list in order to maintain the wrapped list's sorted order. If an iteratee is provided, it will be used to compute the sort ranking of each value, including the value you pass.
Parameter value
The value to determine an insert index for to mainain the sorting in the wrapped list.
Parameter iteratee
Iteratee to compute the sort ranking of each element including
value
, optional.Parameter context
this
object initeratee
, optional.Returns
The index where
value
should be inserted into the wrapped list.
method tap
tap: (interceptor: (...as: any[]) => any) => any;
Wrapped type
object
.See Also
_.tap
method template
template: (settings?: _.TemplateSettings) => CompiledTemplate;
Wrapped type
string
.See Also
_.template
method throttle
throttle: ( wait: number, options?: _.ThrottleSettings) => Function & _.Cancelable;
Wrapped type
Function
.See Also
_.throttle
method times
times: <TResult>(iterator: (n: number) => TResult, context?: any) => TResult[];
Wrapped type
number
.See Also
_.times
method toArray
toArray: () => T[];
Creates a real Array from the wrapped collection (anything that can be iterated over). Useful for transmuting the arguments object.
Returns
An array containing the elements of the wrapped collection.
method toPath
toPath: () => V extends ReadonlyArray<string | number> ? V : V extends string | number ? [V] : never;
Ensures that path is an array.
Parameter path
1. If path is a string, it is wrapped in a single-element array; 2. if it is an array already, it is returned unmodified.
method transpose
transpose: () => T extends [infer A, infer B, infer C] ? [A[], B[], C[]] : T extends [infer A, infer B] ? [A[], B[]] : T extends [infer A] ? [A[]] : T extends List<infer A> ? A[][] : [];
method unescape
unescape: () => string;
Wrapped type
string
.See Also
_.unescape
method union
union: (...lists: Array<List<T>>) => T[];
Computes the union of the wrapped list and the passed-in
lists
: the list of unique items, examined in order from first list to last list, that are present in one or more of the lists.Parameter lists
The lists (along with the wrapped list) to compute the union of.
Returns
The union of elements within the wrapped list and
lists
.
method uniq
uniq: { (isSorted?: boolean, iteratee?: Iteratee<V, any>, cotext?: any): T[]; ( iteratee?: Iteratee<V, any, TypeOfCollection<V, never>>, context?: any ): T[];};
Produces a duplicate-free version of the wrapped list, using === to test object equality. If you know in advance that the wrapped list is sorted, passing true for isSorted will run a much faster algorithm. If you want to compute unique items based on a transformation, pass an iteratee function.
Parameter isSorted
True if the wrapped list is already sorted, optional, default = false.
Parameter iteratee
Transform the elements of the wrapped list before comparisons for uniqueness.
Parameter context
'this' object in
iteratee
, optional.Returns
An array containing only the unique elements in the wrapped list.
method uniqueId
uniqueId: () => string;
Wrapped type
string
.See Also
_.uniqueId
method unzip
unzip: () => T extends [infer A, infer B, infer C] ? [A[], B[], C[]] : T extends [infer A, infer B] ? [A[], B[]] : T extends [infer A] ? [A[]] : T extends List<infer A> ? A[][] : [];
The opposite of zip. Given the wrapped list of lists, returns a series of new arrays, the first of which contains all of the first elements in the wrapped lists, the second of which contains all of the second elements, and so on. (alias: transpose)
Returns
The unzipped version of the wrapped lists.
method value
value: () => V;
Extracts the value of the wrapped object.
Returns
The value of the wrapped object.
method values
values: () => T[];
Wrapped type
object
.See Also
_.values
method where
where: (properties: Partial<T>) => T[];
Looks through each value in the wrapped collection, returning an array of all the elements that match the key-value pairs listed in
properties
.Parameter properties
The properties to check for on the elements within the wrapped collection.
Returns
The elements in the wrapped collection that match
properties
.
method without
without: (...values: T[]) => T[];
Returns a copy of the wrapped list with all instances of
values
removed.Parameter values
The values to exclude from the wrapped list.
Returns
An array that contains all elements of the wrapped list except for
values
.
method wrap
wrap: (wrapper: Function) => () => Function;
Wrapped type
Function
.See Also
_.wrap
method zip
zip: { (): V extends List<infer A> ? [A][] : []; <A, B>(lists_0: List<A>, lists_1: List<B>): [T, A, B][]; <A>(list: List<A>): [T, A][]; (...lists: List<T>[]): T[][]; (...lists: List<any>[]): any[][];};
Merges together the values of each of the
lists
(including the wrapped list) with the values at the corresponding position. Useful when you have separate data sources that are coordinated through matching list indexes.Returns
The zipped version of the wrapped list and
lists
.
interface UnderscoreStatic
interface UnderscoreStatic {}
property all
all: UnderscoreStatic['every'];
See Also
every
property any
any: UnderscoreStatic['some'];
See Also
some
property collect
collect: UnderscoreStatic['map'];
See Also
map
property detect
detect: UnderscoreStatic['find'];
See Also
find
property drop
drop: UnderscoreStatic['rest'];
See Also
rest
property foldl
foldl: UnderscoreStatic['reduce'];
See Also
reduce
property foldr
foldr: UnderscoreStatic['reduceRight'];
See Also
reduceRight
property forEach
forEach: UnderscoreStatic['each'];
See Also
each
property head
head: UnderscoreStatic['first'];
See Also
first
property include
include: UnderscoreStatic['contains'];
See Also
contains
property includes
includes: UnderscoreStatic['contains'];
See Also
contains
property inject
inject: UnderscoreStatic['reduce'];
See Also
reduce
property select
select: UnderscoreStatic['filter'];
See Also
filter
property tail
tail: UnderscoreStatic['rest'];
See Also
rest
property take
take: UnderscoreStatic['first'];
See Also
first
property templateSettings
templateSettings: _.TemplateSettings;
By default, Underscore uses ERB-style template delimiters, change the following template settings to use alternative delimiters.
property unique
unique: UnderscoreStatic['uniq'];
See Also
uniq
property VERSION
readonly VERSION: string;
Current version
method after
after: (count: number, fn: Function) => Function;
Creates a version of the function that will only be run after first being called count times. Useful for grouping asynchronous responses, where you want to be sure that all the async calls have finished, before proceeding.
Parameter number
count Number of times to be called before actually executing.
Parameter Function
fn The function to defer execution
count
times. Copy offn
that will not execute until it is invokedcount
times.
method allKeys
allKeys: (object: any) => string[];
Retrieve all the names of object's own and inherited properties.
Parameter object
Retrieve the key or property names from this object. List of all the property names on
object
.
method assign
assign: (destination: any, ...source: any[]) => any;
Like extend, but only copies own properties over to the destination object. (alias: extendOwn)
method before
before: (count: number, fn: Function) => Function;
Creates a version of the function that can be called no more than count times. The result of the last function call is memoized and returned when count has been reached.
Parameter number
count The maxmimum number of times the function can be called.
Parameter Function
fn The function to limit the number of times it can be called. Copy of
fn
that can only be calledcount
times.
method bind
bind: (func: Function, context: any, ...args: any[]) => () => any;
Bind a function to an object, meaning that whenever the function is called, the value of this will be the object. Optionally, bind arguments to the function to pre-fill them, also known as partial application.
Parameter func
The function to bind
this
toobject
.Parameter context
The
this
pointer wheneverfn
is called.Parameter arguments
Additional arguments to pass to
fn
when called.fn
withthis
bound toobject
.
method bindAll
bindAll: (object: any, ...methodNames: string[]) => any;
Binds a number of methods on the object, specified by methodNames, to be run in the context of that object whenever they are invoked. Very handy for binding functions that are going to be used as event handlers, which would otherwise be invoked with a fairly useless this. If no methodNames are provided, all of the object's function properties will be bound to it.
Parameter object
The object to bind the methods
methodName
to.Parameter methodNames
The methods to bind to
object
, optional and if not provided all ofobject
's methods are bound.
method chain
chain: <V>(value: V) => _Chain<TypeOfCollection<V>, V>;
Returns a wrapped object. Calling methods on this object will continue to return wrapped objects until value() is used.
Parameter value
The object to chain.
Returns
An underscore chain wrapper around the supplied value.
method chunk
chunk: <V extends List<any>>( list: V, length: number) => Array<Array<TypeOfList<V>>>;
Chunks
list
into multiple arrays, each containinglength
or fewer items.Parameter list
The list to chunk.
Parameter length
The maximum size of the chunks.
Returns
The contents of
list
in chunks no greater thanlength
in size.
method clone
clone: <T>(object: T) => T;
Create a shallow-copied clone of the object. Any nested objects or arrays will be copied by reference, not duplicated.
Parameter object
Object to clone. Copy of
object
.
method compact
compact: <V extends List<any>>(list: V) => Array<Truthy<TypeOfList<V>>>;
Returns a copy of
list
with all falsy values removed. In JavaScript, false, null, 0, "", undefined and NaN are all falsy.Parameter list
The list to compact.
Returns
An array containing the elements of
list
without falsy values.
method compose
compose: (...functions: Function[]) => Function;
Returns the composition of a list of functions, where each function consumes the return value of the function that follows. In math terms, composing the functions f(), g(), and h() produces f(g(h())).
Parameter functions
List of functions to compose. Composition of
functions
.
method constant
constant: <T>(value: T) => () => T;
Creates a function that returns the same value that is used as the argument of _.constant
Parameter value
Identity of this object. Function that return value.
method contains
contains: <V extends Collection<any>>( collection: V, value: any, fromIndex?: number) => boolean;
Returns true if the value is present in
collection
. Uses indexOf internally, ifcollection
is a List. UsefromIndex
to start your search at a given index.Parameter collection
The collection to check for
value
.Parameter value
The value to check
collection
for.Parameter fromIndex
The index to start searching from, optional, default = 0, only used when
collection
is a List.Returns
True if
value
is present incollection
afterfromIndex
, otherwise false.
method countBy
countBy: <V extends Collection<any>>( collection: V, iteratee?: Iteratee<V, string | number>, context?: any) => Dictionary<number>;
Sorts
collection
into groups and returns a count for the number of objects in each group. Similar togroupBy
, but instead of returning a list of values, returns a count for the number of values in that group.Parameter collection
The collection to count.
Parameter iteratee
An iteratee that provides the value to count by for each item in
collection
.Parameter context
this
object initeratee
, optional.Returns
A dictionary with the group names provided by
iteratee
as properties where each property contains the count of the grouped elements fromcollection
.
method create
create: (prototype: any, props?: object) => any;
Creates an object that inherits from the given prototype object. If additional properties are provided then they will be added to the created object.
Parameter prototype
The prototype that the returned object will inherit from.
Parameter props
Additional props added to the returned object.
method debounce
debounce: <T extends Function>( fn: T, wait: number, immediate?: boolean) => T & _.Cancelable;
Creates and returns a new debounced version of the passed function that will postpone its execution until after wait milliseconds have elapsed since the last time it was invoked. Useful for implementing behavior that should only happen after the input has stopped arriving. For example: rendering a preview of a Markdown comment, recalculating a layout after the window has stopped being resized, and so on.
Pass true for the immediate parameter to cause debounce to trigger the function on the leading instead of the trailing edge of the wait interval. Useful in circumstances like preventing accidental double -clicks on a "submit" button from firing a second time.
Parameter fn
Function to debounce
waitMS
ms.Parameter wait
The number of milliseconds to wait before
fn
can be invoked again.Parameter immediate
True if
fn
should be invoked on the leading edge ofwaitMS
instead of the trailing edge. Debounced version offn
that waitswait
ms when invoked.
method defaults
defaults: (object: any, ...defaults: any[]) => any;
Fill in null and undefined properties in object with values from the defaults objects, and return the object. As soon as the property is filled, further defaults will have no effect.
Parameter object
Fill this object with default values.
Parameter defaults
The default values to add to
object
.object
with addeddefaults
values.
method defer
defer: (fn: Function, ...args: any[]) => void;
Defers invoking the function until the current call stack has cleared, similar to using setTimeout with a delay of 0. Useful for performing expensive computations or HTML rendering in chunks without blocking the UI thread from updating. If you pass the optional arguments, they will be forwarded on to the function when it is invoked.
Parameter fn
The function to defer.
Parameter arguments
Additional arguments to pass to
fn
.
method delay
delay: { (func: Function, wait: number, ...args: any[]): any; (func: Function, ...args: any[]): any;};
Much like setTimeout, invokes function after wait milliseconds. If you pass the optional arguments, they will be forwarded on to the function when it is invoked.
Parameter func
Function to delay
waitMS
amount of ms.Parameter wait
The amount of milliseconds to delay
fn
.Parameter args
Additional arguments to pass to
fn
.See Also
_delay
method difference
difference: <T>(list: List<T>, ...others: Array<List<T>>) => T[];
Similar to without, but returns the values from
list
that are not present inothers
.Parameter list
The starting list.
Parameter others
The lists of values to exclude from
list
.Returns
The contents of
list
without the values inothers
.
method each
each: <V extends Collection<any>>( collection: V, iteratee: CollectionIterator<TypeOfCollection<V>, void, V>, context?: any) => V;
Iterates over a
collection
of elements, yielding each in turn to aniteratee
. Theiteratee
is bound to the context object, if one is passed.Parameter collection
The collection of elements to iterate over.
Parameter iteratee
The iteratee to call for each element in
collection
.Parameter context
'this' object in
iteratee
, optional.Returns
The original collection.
method escape
escape: (str: string) => string;
Escapes a string for insertion into HTML, replacing &, <, >, ", ', and / characters.
Parameter str
Raw string to escape.
str
HTML escaped.
method every
every: <V extends Collection<any>>( collection: V, iteratee?: Iteratee<V, boolean>, context?: any) => boolean;
Returns true if all of the values in
collection
pass theiteratee
truth test. Short-circuits and stops traversingcollection
if a false element is found.Parameter collection
The collection to evaluate.
Parameter iteratee
The truth test to apply.
Parameter context
this
object initeratee
, optional.Returns
True if all elements pass the truth test, otherwise false.
method extend
extend: (destination: any, ...sources: any[]) => any;
Copy all of the properties in the source objects over to the destination object, and return the destination object. It's in-order, so the last source will override properties of the same name in previous arguments.
Parameter destination
Object to extend all the properties from
sources
.Parameter sources
Extends
destination
with all properties from these source objects.destination
extended with all the properties from thesources
objects.
method extendOwn
extendOwn: (destination: any, ...source: any[]) => any;
Like extend, but only copies own properties over to the destination object. (alias: assign)
method filter
filter: <V extends Collection<any>>( collection: V, iteratee?: Iteratee<V, boolean>, context?: any) => Array<TypeOfCollection<V>>;
Looks through each value in
collection
, returning an array of all the values that pass a truth test (iteratee
).Parameter collection
The collection to filter.
Parameter iteratee
The truth test to apply.
Parameter context
this
object initeratee
, optional.Returns
The set of values that pass the truth test.
method find
find: <V extends Collection<any>>( collection: V, iteratee?: Iteratee<V, boolean>, context?: any) => TypeOfCollection<V> | undefined;
Looks through each value in
collection
, returning the first one that passes a truth test (iteratee
), or undefined if no value passes the test. The function returns as soon as it finds an acceptable element, and doesn't traverse the entire collection.Parameter collection
The collection to search.
Parameter iteratee
The truth test to apply.
Parameter context
this
object initeratee
, optional.Returns
The first element in
collection
that passes the truth test or undefined if no elements pass.
method findIndex
findIndex: <V extends List<any>>( list: V, iteratee?: Iteratee<V, boolean>, context?: any) => number;
Returns the first index of an element in
list
where theiteratee
truth test passes, otherwise returns -1.Parameter list
The list to search for the index of the first element that passes the truth test.
Parameter iteratee
The truth test to apply.
Parameter context
this
object initeratee
, optional.Returns
The index of the first element in
list
where the truth test passes or -1 if no elements pass.
method findKey
findKey: <V extends object>( object: V, iteratee?: Iteratee<V, boolean, TypeOfCollection<V, any>>, context?: any) => Extract<keyof V, string> | undefined;
Similar to
findIndex
but for keys in objects. Returns the key where theiteratee
truth test passes or undefined.Parameter object
The object to search.
Parameter iteratee
The truth test to apply.
Parameter context
this
object initeratee
, optional.Returns
The first element in
object
that passes the truth test or undefined if no elements pass.
method findLastIndex
findLastIndex: <V extends List<any>>( list: V, iteratee?: Iteratee<V, boolean>, context?: any) => number;
Returns the last index of an element in
list
where theiteratee
truth test passes, otherwise returns -1.Parameter list
The list to search for the index of the last element that passes the truth test.
Parameter iteratee
The truth test to apply.
Parameter context
this
object initeratee
, optional.Returns
The index of the last element in
list
where the truth test passes or -1 if no elements pass.
method findWhere
findWhere: <V extends Collection<any>>( collection: V, properties: Partial<TypeOfCollection<V>>) => TypeOfCollection<V> | undefined;
Looks through
collection
and returns the first value that matches all of the key-value pairs listed inproperties
. If no match is found, or if list is empty, undefined will be returned.Parameter collection
The collection in which to find an element that matches
properties
.Parameter properties
The properties to check for on the elements within
collection
.Returns
The first element in
collection
that matchesproperties
or undefined if no match is found.
method first
first: { <V extends List<any>>(list: V): TypeOfList<V> | undefined; <V extends List<any>>(list: V, n: number): TypeOfList<V>[];};
Returns the first element of
list
. Passingn
will return the firstn
elements oflist
.Parameter list
The list to retrieve elements from.
Parameter n
The number of elements to retrieve, optional.
Returns
The first
n
elements oflist
or the first element ifn
is omitted.
method flatten
flatten: { <V extends List<any>>(list: V, depth: 1 | true): Array< ListItemOrSelf<TypeOfList<V>> >; <V extends List<any>>( list: V, depth?: number | false ): DeepestListItemOrSelf<TypeOfList<V>>[];};
Flattens a nested
list
(the nesting can be to any depth). If you pass true or 1 as the depth, thelist
will only be flattened a single level. Passing a greater number will cause the flattening to descend deeper into the nesting hierarchy. Omitting the depth argument, or passing false or Infinity, flattens thelist
all the way to the deepest nesting level.Parameter list
The list to flatten.
Parameter depth
True to only flatten one level, optional, default = false.
Returns
The flattened
list
.
method functions
functions: (object: any) => string[];
Returns a sorted list of the names of every method in an object - that is to say, the name of every function property of the object.
Parameter object
Object to pluck all function property names from. List of all the function names on
object
.
method get
get: { (object: null | undefined, path: string | string[]): undefined; <U>(object: null, path: string | string[], defaultValue?: U): U; <V extends Collection<any>>(object: V, path: string): TypeOfCollection< V, never >; <V extends Collection<any>, U>(object: V, path: string, defaultValue?: U): | U | TypeOfCollection<V, never>; <V extends Collection<any>, P extends (string | number)[], U = undefined>( object: V, path: readonly [...P], defaultValue?: U ): U | DeepTypeOfCollection<V, P>;};
Returns the specified property of
object
.path
may be specified as a simple key, or as an array of object keys or array indexes, for deep property fetching. If the property does not exist or isundefined
, the optional default is returned.Parameter object
The object that maybe contains the property.
Parameter path
The path to the property on
object
.Parameter defaultValue
Default if not found.
Returns
The item on the
object
or thedefaultValue
method groupBy
groupBy: <V extends Collection<any>>( collection: V, iteratee?: Iteratee<V, string | number>, context?: any) => Dictionary<Array<TypeOfCollection<V>>>;
Splits
collection
into sets that are grouped by the result of running each value throughiteratee
.Parameter collection
The collection to group.
Parameter iteratee
An iteratee that provides the value to group by for each item in
collection
.Parameter context
this
object initeratee
, optional.Returns
A dictionary with the group names provided by
iteratee
as properties where each property contains the grouped elements fromcollection
.
method has
has: (object: any, key: string) => boolean;
Does the object contain the given key? Identical to object.hasOwnProperty(key), but uses a safe reference to the hasOwnProperty function, in case it's been overridden accidentally.
Parameter object
Object to check for
key
.Parameter key
The key to check for on
object
. True ifkey
is a property onobject
, otherwise false.
method identity
identity: <T>(value: T) => T;
Returns the same value that is used as the argument. In math: f(x) = x This function looks useless, but is used throughout Underscore as a default iterator.
Parameter value
Identity of this object.
value
.
method indexBy
indexBy: <V extends Collection<any>>( collection: V, iteratee?: Iteratee<V, string | number>, context?: any) => Dictionary<TypeOfCollection<V>>;
Given a
collection
and aniteratee
function that returns a key for each element incollection
, returns an object that acts as an index of each item. Just likegroupBy
, but for when you know your keys are unique.Parameter collection
The collection to index.
Parameter iteratee
An iteratee that provides the value to index by for each item in
collection
.Parameter context
this
object initeratee
, optional.Returns
A dictionary where each item in
collection
is assigned to the property designated byiteratee
.
method indexOf
indexOf: <V extends List<any>>( list: V, value: TypeOfList<V>, isSortedOrFromIndex?: boolean | number) => number;
Returns the index at which
value
can be found inlist
, or -1 ifvalue
is not present. If you're working with a large list and you know that the list is already sorted, pass true forisSortedOrFromIndex
to use a faster binary search...or, pass a number in order to look for the first matching value in the list after the given index.Parameter list
The list to search for the index of
value
.Parameter value
The value to search for within
list
.Parameter isSortedOrFromIndex
True if
list
is already sorted OR the starting index for the search, optional.Returns
The index of the first occurrence of
value
withinlist
or -1 ifvalue
is not found.
method initial
initial: <V extends List<any>>(list: V, n?: number) => Array<TypeOfList<V>>;
Returns everything but the last entry of
list
. Especially useful on the arguments object. Passn
to exclude the lastn
elements from the result.Parameter list
The list to retrieve elements from.
Parameter n
The number of elements from the end of
list
to omit, optional, default = 1.Returns
The elements of
list
with the lastn
items omitted.
method intersection
intersection: <T>(...lists: Array<List<T>>) => T[];
Computes the list of values that are the intersection of the passed-in
lists
. Each value in the result is present in each of the lists.Parameter lists
The lists to compute the intersection of.
Returns
The intersection of elements within the
lists
.
method invert
invert: (object: any) => any;
Returns a copy of the object where the keys have become the values and the values the keys. For this to work, all of your object's values should be unique and string serializable.
Parameter object
Object to invert key/value pairs. An inverted key/value paired version of
object
.
method invoke
invoke: (list: Collection<any>, methodName: string, ...args: any[]) => any[];
Calls the method named by
methodName
on each value incollection
. Any extra arguments passed to invoke will be forwarded on to the method invocation.Parameter collection
The collection of elements to invoke
methodName
on.Parameter methodName
The name of the method to call on each element in
collection
.Parameter args
Additional arguments to pass to method
methodName
.Returns
An array containing the result of the method call for each item in
collection
.
method isArguments
isArguments: (object: any) => object is IArguments;
Returns true if
object
is an Arguments object.Parameter object
The object to check.
Returns
True if
object
is an Arguments object, otherwise false.
method isArray
isArray: (object: any) => object is any[];
Returns true if
object
is an Array.Parameter object
The object to check.
Returns
True if
object
is an Array, otherwise false.
method isArrayBuffer
isArrayBuffer: (object: any) => object is ArrayBuffer;
Returns true if
object
is an ArrayBuffer.Parameter object
The object to check.
Returns
True if
object
is an ArrayBuffer, otherwise false.
method isBoolean
isBoolean: (object: any) => object is boolean;
Returns true if
object
is a Boolean.Parameter object
The object to check.
Returns
True if
object
is a Boolean, otherwise false.
method isDataView
isDataView: (object: any) => object is DataView;
Returns true if
object
is a DataView.Parameter object
The object to check.
Returns
True if
object
is a DataView, otherwise false.
method isDate
isDate: (object: any) => object is Date;
Returns true if
object
is a Date.Parameter object
The object to check.
Returns
True if
object
is a Date, otherwise false.
method isElement
isElement: (object: any) => object is Element;
Returns true if
object
is a DOM element.Parameter object
The object to check.
Returns
True if
object
is a DOM element, otherwise false.
method isEmpty
isEmpty: (collection: any) => boolean;
Returns true if
collection
contains no values. For strings and array-like objects checks if the length property is 0.Parameter collection
The collection to check.
Returns
True if
collection
has no elements.
method isEqual
isEqual: (object: any, other: any) => boolean;
Performs an optimized deep comparison between
object
andother
to determine if they should be considered equal.Parameter object
Compare to
other
.Parameter other
Compare to
object
.Returns
True if
object
should be considered equal toother
.
method isError
isError: (object: any) => object is Error;
Returns true if
object
is an Error.Parameter object
The object to check.
Returns
True if
object
is a Error, otherwise false.
method isFinite
isFinite: (object: any) => boolean;
Returns true if
object
is a finite Number.Parameter object
The object to check.
Returns
True if
object
is a finite Number.
method isFunction
isFunction: (object: any) => object is Function;
Returns true if
object
is a Function.Parameter object
The object to check.
Returns
True if
object
is a Function, otherwise false.
method isMap
isMap: (object: any) => object is Map<any, any>;
Returns true if
object
is a Map.Parameter object
The object to check.
Returns
True if
object
is a Map, otherwise false.
method isMatch
isMatch: (object: any, properties: any) => boolean;
Returns true if the keys and values in
properties
are contained inobject
.Parameter object
The object to check.
Parameter properties
The properties to check for in
object
.Returns
True if all keys and values in
properties
are also inobject
.
method isNaN
isNaN: (object: any) => boolean;
Returns true if
object
is NaN. Note: this is not the same as the native isNaN function, which will also return true if the variable is undefined.Parameter object
The object to check.
Returns
True if
object
is NaN, otherwise false.
method isNull
isNull: (object: any) => object is null;
Returns true if
object
is null.Parameter object
The object to check.
Returns
True if
object
is null, otherwise false.
method isNumber
isNumber: (object: any) => object is number;
Returns true if
object
is a Number (including NaN).Parameter object
The object to check.
Returns
True if
object
is a Number, otherwise false.
method isObject
isObject: (object: any) => object is Dictionary<any> & object;
Returns true if
object
is an Object. Note that JavaScript arrays and functions are objects, while (normal) strings and numbers are not.Parameter object
The object to check.
Returns
True if
object
is an Object, otherwise false.
method isRegExp
isRegExp: (object: any) => object is RegExp;
Returns true if
object
is a RegExp.Parameter object
The object to check.
Returns
True if
object
is a RegExp, otherwise false.
method isSet
isSet: (object: any) => object is Set<any>;
Returns true if
object
is a Set.Parameter object
The object to check.
Returns
True if
object
is a Set, otherwise false.
method isString
isString: (object: any) => object is string;
Returns true if
object
is a String.Parameter object
The object to check.
Returns
True if
object
is a String, otherwise false.
method isSymbol
isSymbol: (object: any) => object is symbol;
Returns true if
object
is a Symbol.Parameter object
The object to check.
Returns
True if
object
is a Symbol, otherwise false.
method isTypedArray
isTypedArray: (object: any) => object is TypedArray;
Returns true if
object
is a TypedArray.Parameter object
The object to check.
Returns
True if
object
is a TypedArray, otherwise false.
method isUndefined
isUndefined: (object: any) => object is undefined;
Returns true if
object
is undefined.Parameter object
The object to check.
Returns
True if
object
is undefined, otherwise false.
method isWeakMap
isWeakMap: (object: any) => object is WeakMap<any, any>;
Returns true if
object
is a WeakMap.Parameter object
The object to check.
Returns
True if
object
is a WeakMap, otherwise false.
method isWeakSet
isWeakSet: (object: any) => object is WeakSet<any>;
Returns true if
object
is a WeakSet.Parameter object
The object to check.
Returns
True if
object
is a WeakSet, otherwise false.
method iteratee
iteratee: { (value: string): Function; (value: Function, context?: any): Function; (value: object): Function;};
A mostly-internal function to generate callbacks that can be applied to each element in a collection, returning the desired result -- either identity, an arbitrary callback, a property matcher, or a propetery accessor.
Parameter string
|Function|Object value The value to iterate over, usually the key.
Parameter any
context Callback that can be applied to each element in a collection.
method keys
keys: (object: any) => string[];
Retrieve all the names of the object's properties.
Parameter object
Retrieve the key or property names from this object. List of all the property names on
object
.
method last
last: { <V extends List<any>>(list: V): TypeOfList<V> | undefined; <V extends List<any>>(list: V, n: number): TypeOfList<V>[];};
Returns the last element of
list
. Passingn
will return the lastn
elements oflist
.Parameter list
The list to retrieve elements from.
Parameter n
The number of elements to retrieve, optional.
Returns
The last
n
elements oflist
or the last element ifn
is omitted.
method lastIndexOf
lastIndexOf: <V extends List<any>>( list: V, value: TypeOfList<V>, fromIndex?: number) => number;
Returns the index of the last occurrence of
value
inlist
, or -1 ifvalue
is not present. PassfromIndex
to start your search at a given index.Parameter list
The list to search for the last occurrence of
value
.Parameter value
The value to search for within
list
.Parameter fromIndex
The starting index for the search, optional.
Returns
The index of the last occurrence of
value
withinlist
or -1 ifvalue
is not found.
method map
map: < V extends Collection<any>, I extends Iteratee<V, any, TypeOfCollection<V, never>>>( collection: V, iteratee: I, context?: any) => Array<IterateeResult<I, TypeOfCollection<V>>>;
Produces a new array of values by mapping each value in
collection
through a transformationiteratee
.Parameter collection
The collection to transform.
Parameter iteratee
The iteratee to use to transform each item in
collection
.Parameter context
this
object initeratee
, optional.Returns
The mapped result.
method mapObject
mapObject: < V extends object, I extends Iteratee<V, any, TypeOfCollection<V, any>>>( object: V, iteratee: I, context?: any) => { [K in keyof V]: IterateeResult<I, V[K]> };
Like map, but for objects. Transform the value of each property in turn.
Parameter object
The object to transform.
Parameter iteratee
The iteratee to use to transform property values.
Parameter context
this
object initeratee
, optional.Returns
A new object with all of
object
's property values transformed throughiteratee
.
method matcher
matcher: <T>(attrs: T) => _.Predicate<T>;
Returns a predicate function that will tell you if a passed in object contains all of the key/value properties present in attrs.
Parameter attrs
Object with key values pair Predicate function
See Also
_.matches
method matches
matches: <T>(attrs: T) => _.Predicate<T>;
Returns a predicate function that will tell you if a passed in object contains all of the key/value properties present in attrs.
Parameter attrs
Object with key values pair Predicate function
method max
max: <V extends Collection<any>>( collection: V, iteratee?: Iteratee<V, any>, context?: any) => TypeOfCollection<V> | number;
Returns the maximum value in
collection
. If aniteratee
is provided, it will be used on each element to generate the criterion by which the element is ranked. -Infinity is returned if list is empty. Non-numerical values returned byiteratee
will be ignored.Parameter collection
The collection in which to find the maximum value.
Parameter iteratee
The iteratee that provides the criterion by which each element is ranked, optional if evaluating a collection of numbers.
Parameter context
this
object initeratee
, optional.Returns
The maximum element within
collection
or -Infinity ifcollection
is empty.
method memoize
memoize: <T = Function>(fn: T, hashFn?: (...args: any[]) => string) => T;
Memoizes a given function by caching the computed result. Useful for speeding up slow-running computations. If passed an optional hashFunction, it will be used to compute the hash key for storing the result, based on the arguments to the original function. The default hashFunction just uses the first argument to the memoized function as the key.
Parameter fn
Computationally expensive function that will now memoized results.
Parameter hashFn
Hash function for storing the result of
fn
. Memoized version offn
.
method methods
methods: (object: any) => string[];
See Also
_functions
method min
min: <V extends Collection<any>>( list: V, iteratee?: Iteratee<V, any>, context?: any) => TypeOfCollection<V> | number;
Returns the minimum value in
collection
. If aniteratee
is provided, it will be used on each element to generate the criterion by which the element is ranked. Infinity is returned if list is empty. Non-numerical values returned byiteratee
will be ignored.Parameter collection
The collection in which to find the minimum value.
Parameter iteratee
The iteratee that provides the criterion by which each element is ranked, optional if evaluating a collection of numbers.
Parameter context
this
object initeratee
, optional.Returns
The minimum element within
collection
or Infinity ifcollection
is empty.
method mixin
mixin: (object: any) => void;
Allows you to extend Underscore with your own utility functions. Pass a hash of {name: function} definitions to have your functions added to the Underscore object, as well as the OOP wrapper.
Parameter object
Mixin object containing key/function pairs to add to the Underscore object.
method negate
negate: (predicate: (...args: any[]) => boolean) => (...args: any[]) => boolean;
Returns a negated version of the pass-in predicate.
Parameter
(...args: any[]) => boolean predicate (...args: any[]) => boolean
method noConflict
noConflict: () => any;
Give control of the "_" variable back to its previous owner. Returns a reference to the Underscore object. Underscore object reference.
method noop
noop: () => void;
Returns undefined irrespective of the arguments passed to it. Useful as the default for optional callback arguments. Note there is no way to indicate a 'undefined' return, so it is currently typed as void. undefined
method now
now: () => number;
Returns an integer timestamp for the current time, using the fastest method available in the runtime. Useful for implementing timing/animation functions.
method object
object: { <TList extends List<string | number>, TValue>( list: TList, values: List<TValue> ): Dictionary<TValue | undefined>; <TList extends List<List<any>>>(list: TList): Dictionary< PairValue<TypeOfList<TList>> >;};
Converts lists into objects. Pass either a single
list
of [key, value] pairs, or alist
of keys and a list ofvalues
. Passing by pairs is the reverse of pairs. If duplicate keys exist, the last value wins.Parameter list
A list of [key, value] pairs or a list of keys.
Parameter values
If
list
is a list of keys, a list of values corresponding to those keys.Returns
An object comprised of the provided keys and values.
method omit
omit: { <V, K extends string>(object: V, ...keys: Array<K | K[]>): _Omit<V, K>; <V>( object: V, iterator: ObjectIterator<TypeOfDictionary<V, any>, boolean, V> ): Partial<V>;};
Return a copy of
object
that is filtered to omit the disallowed keys (or array of keys).Parameter object
The object to omit specific keys from.
Parameter keys
The keys to omit from
object
.Returns
A copy of
object
without thekeys
properties.Return a copy of
object
that is filtered to not have values for the keys selected by a truth test.Parameter object
The object to omit specific keys from.
Parameter iterator
A truth test that selects the keys to omit from
object
.Returns
A copy of
object
without the keys selected byiterator
.
method once
once: <T extends Function>(fn: T) => T;
Creates a version of the function that can only be called one time. Repeated calls to the modified function will have no effect, returning the value from the original call. Useful for initialization functions, instead of having to set a boolean flag and then check it later.
Parameter fn
Function to only execute once. Copy of
fn
that can only be invoked once.
method pairs
pairs: <V extends object>( object: V) => Array<[Extract<keyof V, string>, TypeOfCollection<V, any>]>;
Converts
object
into a list of [key, value] pairs. The opposite of the single-argument signature of_.object
.Parameter object
The object to convert.
Returns
The list of [key, value] pairs from
object
.
method partial
partial: { <T1, T2>(fn: (p1: T1) => T2, p1: T1): { (): T2 }; <T1, T2, T3>(fn: (p1: T1, p2: T2) => T3, p1: T1): (p2: T2) => T3; <T1, T2, T3>(fn: (p1: T1, p2: T2) => T3, p1: T1, p2: T2): () => T3; <T1, T2, T3>(fn: (p1: T1, p2: T2) => T3, stub1: UnderscoreStatic, p2: T2): ( p1: T1 ) => T3; <T1, T2, T3, T4>(fn: (p1: T1, p2: T2, p3: T3) => T4, p1: T1): ( p2: T2, p3: T3 ) => T4; <T1, T2, T3, T4>(fn: (p1: T1, p2: T2, p3: T3) => T4, p1: T1, p2: T2): ( p3: T3 ) => T4; <T1, T2, T3, T4>( fn: (p1: T1, p2: T2, p3: T3) => T4, stub1: UnderscoreStatic, p2: T2 ): (p1: T1, p3: T3) => T4; <T1, T2, T3, T4>( fn: (p1: T1, p2: T2, p3: T3) => T4, p1: T1, p2: T2, p3: T3 ): () => T4; <T1, T2, T3, T4>( fn: (p1: T1, p2: T2, p3: T3) => T4, stub1: UnderscoreStatic, p2: T2, p3: T3 ): (p1: T1) => T4; <T1, T2, T3, T4>( fn: (p1: T1, p2: T2, p3: T3) => T4, p1: T1, stub2: UnderscoreStatic, p3: T3 ): (p2: T2) => T4; <T1, T2, T3, T4>( fn: (p1: T1, p2: T2, p3: T3) => T4, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3 ): (p1: T1, p2: T2) => T4; <T1, T2, T3, T4, T5>(fn: (p1: T1, p2: T2, p3: T3, p4: T4) => T5, p1: T1): ( p2: T2, p3: T3, p4: T4 ) => T5; <T1, T2, T3, T4, T5>( fn: (p1: T1, p2: T2, p3: T3, p4: T4) => T5, p1: T1, p2: T2 ): (p3: T3, p4: T4) => T5; <T1, T2, T3, T4, T5>( fn: (p1: T1, p2: T2, p3: T3, p4: T4) => T5, stub1: UnderscoreStatic, p2: T2 ): (p1: T1, p3: T3, p4: T4) => T5; <T1, T2, T3, T4, T5>( fn: (p1: T1, p2: T2, p3: T3, p4: T4) => T5, p1: T1, p2: T2, p3: T3 ): (p4: T4) => T5; <T1, T2, T3, T4, T5>( fn: (p1: T1, p2: T2, p3: T3, p4: T4) => T5, stub1: UnderscoreStatic, p2: T2, p3: T3 ): (p1: T1, p4: T4) => T5; <T1, T2, T3, T4, T5>( fn: (p1: T1, p2: T2, p3: T3, p4: T4) => T5, p1: T1, stub2: UnderscoreStatic, p3: T3 ): (p2: T2, p4: T4) => T5; <T1, T2, T3, T4, T5>( fn: (p1: T1, p2: T2, p3: T3, p4: T4) => T5, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3 ): (p1: T1, p2: T2, p4: T4) => T5; <T1, T2, T3, T4, T5>( fn: (p1: T1, p2: T2, p3: T3, p4: T4) => T5, p1: T1, p2: T2, p3: T3, p4: T4 ): () => T5; <T1, T2, T3, T4, T5>( fn: (p1: T1, p2: T2, p3: T3, p4: T4) => T5, stub1: UnderscoreStatic, p2: T2, p3: T3, p4: T4 ): (p1: T1) => T5; <T1, T2, T3, T4, T5>( fn: (p1: T1, p2: T2, p3: T3, p4: T4) => T5, p1: T1, stub2: UnderscoreStatic, p3: T3, p4: T4 ): (p2: T2) => T5; <T1, T2, T3, T4, T5>( fn: (p1: T1, p2: T2, p3: T3, p4: T4) => T5, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, p4: T4 ): (p1: T1, p2: T2) => T5; <T1, T2, T3, T4, T5>( fn: (p1: T1, p2: T2, p3: T3, p4: T4) => T5, p1: T1, p2: T2, stub3: UnderscoreStatic, p4: T4 ): (p3: T3) => T5; <T1, T2, T3, T4, T5>( fn: (p1: T1, p2: T2, p3: T3, p4: T4) => T5, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, p4: T4 ): (p1: T1, p3: T3) => T5; <T1, T2, T3, T4, T5>( fn: (p1: T1, p2: T2, p3: T3, p4: T4) => T5, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4 ): (p2: T2, p3: T3) => T5; <T1, T2, T3, T4, T5>( fn: (p1: T1, p2: T2, p3: T3, p4: T4) => T5, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4 ): (p1: T1, p2: T2, p3: T3) => T5; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, p1: T1 ): (p2: T2, p3: T3, p4: T4, p5: T5) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, p1: T1, p2: T2 ): (p3: T3, p4: T4, p5: T5) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, stub1: UnderscoreStatic, p2: T2 ): (p1: T1, p3: T3, p4: T4, p5: T5) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, p1: T1, p2: T2, p3: T3 ): (p4: T4, p5: T5) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, stub1: UnderscoreStatic, p2: T2, p3: T3 ): (p1: T1, p4: T4, p5: T5) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, p1: T1, stub2: UnderscoreStatic, p3: T3 ): (p2: T2, p4: T4, p5: T5) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3 ): (p1: T1, p2: T2, p4: T4, p5: T5) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, p1: T1, p2: T2, p3: T3, p4: T4 ): (p5: T5) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, stub1: UnderscoreStatic, p2: T2, p3: T3, p4: T4 ): (p1: T1, p5: T5) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, p1: T1, stub2: UnderscoreStatic, p3: T3, p4: T4 ): (p2: T2, p5: T5) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, p4: T4 ): (p1: T1, p2: T2, p5: T5) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, p1: T1, p2: T2, stub3: UnderscoreStatic, p4: T4 ): (p3: T3, p5: T5) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, p4: T4 ): (p1: T1, p3: T3, p5: T5) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4 ): (p2: T2, p3: T3, p5: T5) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4 ): (p1: T1, p2: T2, p3: T3, p5: T5) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, p1: T1, p2: T2, p3: T3, p4: T4, p5: T5 ): () => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, stub1: UnderscoreStatic, p2: T2, p3: T3, p4: T4, p5: T5 ): (p1: T1) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, p1: T1, stub2: UnderscoreStatic, p3: T3, p4: T4, p5: T5 ): (p2: T2) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, p4: T4, p5: T5 ): (p1: T1, p2: T2) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, p1: T1, p2: T2, stub3: UnderscoreStatic, p4: T4, p5: T5 ): (p3: T3) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, p4: T4, p5: T5 ): (p1: T1, p3: T3) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, p5: T5 ): (p2: T2, p3: T3) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, p5: T5 ): (p1: T1, p2: T2, p3: T3) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, p1: T1, p2: T2, p3: T3, stub4: UnderscoreStatic, p5: T5 ): (p4: T4) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, stub1: UnderscoreStatic, p2: T2, p3: T3, stub4: UnderscoreStatic, p5: T5 ): (p1: T1, p4: T4) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, p1: T1, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, p5: T5 ): (p2: T2, p4: T4) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, p5: T5 ): (p1: T1, p2: T2, p4: T4) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, p1: T1, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5 ): (p3: T3, p4: T4) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5 ): (p1: T1, p3: T3, p4: T4) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5 ): (p2: T2, p3: T3, p4: T4) => T6; <T1, T2, T3, T4, T5, T6>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T6, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5 ): (p1: T1, p2: T2, p3: T3, p4: T4) => T6; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1 ): (p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, p2: T2 ): (p3: T3, p4: T4, p5: T5, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, p2: T2 ): (p1: T1, p3: T3, p4: T4, p5: T5, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, p2: T2, p3: T3 ): (p4: T4, p5: T5, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, p2: T2, p3: T3 ): (p1: T1, p4: T4, p5: T5, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, stub2: UnderscoreStatic, p3: T3 ): (p2: T2, p4: T4, p5: T5, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3 ): (p1: T1, p2: T2, p4: T4, p5: T5, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, p2: T2, p3: T3, p4: T4 ): (p5: T5, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, p2: T2, p3: T3, p4: T4 ): (p1: T1, p5: T5, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, stub2: UnderscoreStatic, p3: T3, p4: T4 ): (p2: T2, p5: T5, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, p4: T4 ): (p1: T1, p2: T2, p5: T5, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, p2: T2, stub3: UnderscoreStatic, p4: T4 ): (p3: T3, p5: T5, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, p4: T4 ): (p1: T1, p3: T3, p5: T5, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4 ): (p2: T2, p3: T3, p5: T5, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4 ): (p1: T1, p2: T2, p3: T3, p5: T5, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, p2: T2, p3: T3, p4: T4, p5: T5 ): (p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, p2: T2, p3: T3, p4: T4, p5: T5 ): (p1: T1, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, stub2: UnderscoreStatic, p3: T3, p4: T4, p5: T5 ): (p2: T2, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, p4: T4, p5: T5 ): (p1: T1, p2: T2, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, p2: T2, stub3: UnderscoreStatic, p4: T4, p5: T5 ): (p3: T3, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, p4: T4, p5: T5 ): (p1: T1, p3: T3, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, p5: T5 ): (p2: T2, p3: T3, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, p5: T5 ): (p1: T1, p2: T2, p3: T3, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, p2: T2, p3: T3, stub4: UnderscoreStatic, p5: T5 ): (p4: T4, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, p2: T2, p3: T3, stub4: UnderscoreStatic, p5: T5 ): (p1: T1, p4: T4, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, p5: T5 ): (p2: T2, p4: T4, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, p5: T5 ): (p1: T1, p2: T2, p4: T4, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5 ): (p3: T3, p4: T4, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5 ): (p1: T1, p3: T3, p4: T4, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5 ): (p2: T2, p3: T3, p4: T4, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5 ): (p1: T1, p2: T2, p3: T3, p4: T4, p6: T6) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6 ): () => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6 ): (p1: T1) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, stub2: UnderscoreStatic, p3: T3, p4: T4, p5: T5, p6: T6 ): (p2: T2) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, p4: T4, p5: T5, p6: T6 ): (p1: T1, p2: T2) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, p2: T2, stub3: UnderscoreStatic, p4: T4, p5: T5, p6: T6 ): (p3: T3) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, p4: T4, p5: T5, p6: T6 ): (p1: T1, p3: T3) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, p5: T5, p6: T6 ): (p2: T2, p3: T3) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, p5: T5, p6: T6 ): (p1: T1, p2: T2, p3: T3) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, p2: T2, p3: T3, stub4: UnderscoreStatic, p5: T5, p6: T6 ): (p4: T4) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, p2: T2, p3: T3, stub4: UnderscoreStatic, p5: T5, p6: T6 ): (p1: T1, p4: T4) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, p5: T5, p6: T6 ): (p2: T2, p4: T4) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, p5: T5, p6: T6 ): (p1: T1, p2: T2, p4: T4) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5, p6: T6 ): (p3: T3, p4: T4) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5, p6: T6 ): (p1: T1, p3: T3, p4: T4) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5, p6: T6 ): (p2: T2, p3: T3, p4: T4) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5, p6: T6 ): (p1: T1, p2: T2, p3: T3, p4: T4) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, p2: T2, p3: T3, p4: T4, stub5: UnderscoreStatic, p6: T6 ): (p5: T5) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, p2: T2, p3: T3, p4: T4, stub5: UnderscoreStatic, p6: T6 ): (p1: T1, p5: T5) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, stub2: UnderscoreStatic, p3: T3, p4: T4, stub5: UnderscoreStatic, p6: T6 ): (p2: T2, p5: T5) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, p4: T4, stub5: UnderscoreStatic, p6: T6 ): (p1: T1, p2: T2, p5: T5) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, p2: T2, stub3: UnderscoreStatic, p4: T4, stub5: UnderscoreStatic, p6: T6 ): (p3: T3, p5: T5) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, p4: T4, stub5: UnderscoreStatic, p6: T6 ): (p1: T1, p3: T3, p5: T5) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, stub5: UnderscoreStatic, p6: T6 ): (p2: T2, p3: T3, p5: T5) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, stub5: UnderscoreStatic, p6: T6 ): (p1: T1, p2: T2, p3: T3, p5: T5) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, p2: T2, p3: T3, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6 ): (p4: T4, p5: T5) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, p2: T2, p3: T3, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6 ): (p1: T1, p4: T4, p5: T5) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6 ): (p2: T2, p4: T4, p5: T5) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6 ): (p1: T1, p2: T2, p4: T4, p5: T5) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6 ): (p3: T3, p4: T4, p5: T5) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6 ): (p1: T1, p3: T3, p4: T4, p5: T5) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6 ): (p2: T2, p3: T3, p4: T4, p5: T5) => T7; <T1, T2, T3, T4, T5, T6, T7>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T7, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6 ): (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T7; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1 ): (p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2 ): (p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2 ): (p1: T1, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, p3: T3 ): (p4: T4, p5: T5, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, p3: T3 ): (p1: T1, p4: T4, p5: T5, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, p3: T3 ): (p2: T2, p4: T4, p5: T5, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3 ): (p1: T1, p2: T2, p4: T4, p5: T5, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, p3: T3, p4: T4 ): (p5: T5, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, p3: T3, p4: T4 ): (p1: T1, p5: T5, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, p3: T3, p4: T4 ): (p2: T2, p5: T5, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, p4: T4 ): (p1: T1, p2: T2, p5: T5, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, stub3: UnderscoreStatic, p4: T4 ): (p3: T3, p5: T5, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, p4: T4 ): (p1: T1, p3: T3, p5: T5, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4 ): (p2: T2, p3: T3, p5: T5, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4 ): (p1: T1, p2: T2, p3: T3, p5: T5, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, p3: T3, p4: T4, p5: T5 ): (p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, p3: T3, p4: T4, p5: T5 ): (p1: T1, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, p3: T3, p4: T4, p5: T5 ): (p2: T2, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, p4: T4, p5: T5 ): (p1: T1, p2: T2, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, stub3: UnderscoreStatic, p4: T4, p5: T5 ): (p3: T3, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, p4: T4, p5: T5 ): (p1: T1, p3: T3, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, p5: T5 ): (p2: T2, p3: T3, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, p5: T5 ): (p1: T1, p2: T2, p3: T3, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, p3: T3, stub4: UnderscoreStatic, p5: T5 ): (p4: T4, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, p3: T3, stub4: UnderscoreStatic, p5: T5 ): (p1: T1, p4: T4, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, p5: T5 ): (p2: T2, p4: T4, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, p5: T5 ): (p1: T1, p2: T2, p4: T4, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5 ): (p3: T3, p4: T4, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5 ): (p1: T1, p3: T3, p4: T4, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5 ): (p2: T2, p3: T3, p4: T4, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5 ): (p1: T1, p2: T2, p3: T3, p4: T4, p6: T6, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6 ): (p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6 ): (p1: T1, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, p3: T3, p4: T4, p5: T5, p6: T6 ): (p2: T2, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, p4: T4, p5: T5, p6: T6 ): (p1: T1, p2: T2, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, stub3: UnderscoreStatic, p4: T4, p5: T5, p6: T6 ): (p3: T3, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, p4: T4, p5: T5, p6: T6 ): (p1: T1, p3: T3, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, p5: T5, p6: T6 ): (p2: T2, p3: T3, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, p5: T5, p6: T6 ): (p1: T1, p2: T2, p3: T3, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, p3: T3, stub4: UnderscoreStatic, p5: T5, p6: T6 ): (p4: T4, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, p3: T3, stub4: UnderscoreStatic, p5: T5, p6: T6 ): (p1: T1, p4: T4, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, p5: T5, p6: T6 ): (p2: T2, p4: T4, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, p5: T5, p6: T6 ): (p1: T1, p2: T2, p4: T4, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5, p6: T6 ): (p3: T3, p4: T4, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5, p6: T6 ): (p1: T1, p3: T3, p4: T4, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5, p6: T6 ): (p2: T2, p3: T3, p4: T4, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5, p6: T6 ): (p1: T1, p2: T2, p3: T3, p4: T4, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, p3: T3, p4: T4, stub5: UnderscoreStatic, p6: T6 ): (p5: T5, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, p3: T3, p4: T4, stub5: UnderscoreStatic, p6: T6 ): (p1: T1, p5: T5, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, p3: T3, p4: T4, stub5: UnderscoreStatic, p6: T6 ): (p2: T2, p5: T5, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, p4: T4, stub5: UnderscoreStatic, p6: T6 ): (p1: T1, p2: T2, p5: T5, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, stub3: UnderscoreStatic, p4: T4, stub5: UnderscoreStatic, p6: T6 ): (p3: T3, p5: T5, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, p4: T4, stub5: UnderscoreStatic, p6: T6 ): (p1: T1, p3: T3, p5: T5, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, stub5: UnderscoreStatic, p6: T6 ): (p2: T2, p3: T3, p5: T5, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, stub5: UnderscoreStatic, p6: T6 ): (p1: T1, p2: T2, p3: T3, p5: T5, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, p3: T3, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6 ): (p4: T4, p5: T5, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, p3: T3, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6 ): (p1: T1, p4: T4, p5: T5, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6 ): (p2: T2, p4: T4, p5: T5, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6 ): (p1: T1, p2: T2, p4: T4, p5: T5, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6 ): (p3: T3, p4: T4, p5: T5, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6 ): (p1: T1, p3: T3, p4: T4, p5: T5, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6 ): (p2: T2, p3: T3, p4: T4, p5: T5, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6 ): (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p7: T7) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7 ): () => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7 ): (p1: T1) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7 ): (p2: T2) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7 ): (p1: T1, p2: T2) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, stub3: UnderscoreStatic, p4: T4, p5: T5, p6: T6, p7: T7 ): (p3: T3) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, p4: T4, p5: T5, p6: T6, p7: T7 ): (p1: T1, p3: T3) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, p5: T5, p6: T6, p7: T7 ): (p2: T2, p3: T3) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, p5: T5, p6: T6, p7: T7 ): (p1: T1, p2: T2, p3: T3) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, p3: T3, stub4: UnderscoreStatic, p5: T5, p6: T6, p7: T7 ): (p4: T4) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, p3: T3, stub4: UnderscoreStatic, p5: T5, p6: T6, p7: T7 ): (p1: T1, p4: T4) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, p5: T5, p6: T6, p7: T7 ): (p2: T2, p4: T4) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, p5: T5, p6: T6, p7: T7 ): (p1: T1, p2: T2, p4: T4) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5, p6: T6, p7: T7 ): (p3: T3, p4: T4) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5, p6: T6, p7: T7 ): (p1: T1, p3: T3, p4: T4) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5, p6: T6, p7: T7 ): (p2: T2, p3: T3, p4: T4) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5, p6: T6, p7: T7 ): (p1: T1, p2: T2, p3: T3, p4: T4) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, p3: T3, p4: T4, stub5: UnderscoreStatic, p6: T6, p7: T7 ): (p5: T5) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, p3: T3, p4: T4, stub5: UnderscoreStatic, p6: T6, p7: T7 ): (p1: T1, p5: T5) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, p3: T3, p4: T4, stub5: UnderscoreStatic, p6: T6, p7: T7 ): (p2: T2, p5: T5) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, p4: T4, stub5: UnderscoreStatic, p6: T6, p7: T7 ): (p1: T1, p2: T2, p5: T5) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, stub3: UnderscoreStatic, p4: T4, stub5: UnderscoreStatic, p6: T6, p7: T7 ): (p3: T3, p5: T5) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, p4: T4, stub5: UnderscoreStatic, p6: T6, p7: T7 ): (p1: T1, p3: T3, p5: T5) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, stub5: UnderscoreStatic, p6: T6, p7: T7 ): (p2: T2, p3: T3, p5: T5) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, stub5: UnderscoreStatic, p6: T6, p7: T7 ): (p1: T1, p2: T2, p3: T3, p5: T5) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, p3: T3, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6, p7: T7 ): (p4: T4, p5: T5) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, p3: T3, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6, p7: T7 ): (p1: T1, p4: T4, p5: T5) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6, p7: T7 ): (p2: T2, p4: T4, p5: T5) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6, p7: T7 ): (p1: T1, p2: T2, p4: T4, p5: T5) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6, p7: T7 ): (p3: T3, p4: T4, p5: T5) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6, p7: T7 ): (p1: T1, p3: T3, p4: T4, p5: T5) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6, p7: T7 ): (p2: T2, p3: T3, p4: T4, p5: T5) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, stub5: UnderscoreStatic, p6: T6, p7: T7 ): (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, stub6: UnderscoreStatic, p7: T7 ): (p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, p3: T3, p4: T4, p5: T5, stub6: UnderscoreStatic, p7: T7 ): (p1: T1, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, p3: T3, p4: T4, p5: T5, stub6: UnderscoreStatic, p7: T7 ): (p2: T2, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, p4: T4, p5: T5, stub6: UnderscoreStatic, p7: T7 ): (p1: T1, p2: T2, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, stub3: UnderscoreStatic, p4: T4, p5: T5, stub6: UnderscoreStatic, p7: T7 ): (p3: T3, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, p4: T4, p5: T5, stub6: UnderscoreStatic, p7: T7 ): (p1: T1, p3: T3, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, p5: T5, stub6: UnderscoreStatic, p7: T7 ): (p2: T2, p3: T3, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, p5: T5, stub6: UnderscoreStatic, p7: T7 ): (p1: T1, p2: T2, p3: T3, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, p3: T3, stub4: UnderscoreStatic, p5: T5, stub6: UnderscoreStatic, p7: T7 ): (p4: T4, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, p3: T3, stub4: UnderscoreStatic, p5: T5, stub6: UnderscoreStatic, p7: T7 ): (p1: T1, p4: T4, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, p5: T5, stub6: UnderscoreStatic, p7: T7 ): (p2: T2, p4: T4, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, p5: T5, stub6: UnderscoreStatic, p7: T7 ): (p1: T1, p2: T2, p4: T4, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5, stub6: UnderscoreStatic, p7: T7 ): (p3: T3, p4: T4, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5, stub6: UnderscoreStatic, p7: T7 ): (p1: T1, p3: T3, p4: T4, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5, stub6: UnderscoreStatic, p7: T7 ): (p2: T2, p3: T3, p4: T4, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, p5: T5, stub6: UnderscoreStatic, p7: T7 ): (p1: T1, p2: T2, p3: T3, p4: T4, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, p3: T3, p4: T4, stub5: UnderscoreStatic, stub6: UnderscoreStatic, p7: T7 ): (p5: T5, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, p3: T3, p4: T4, stub5: UnderscoreStatic, stub6: UnderscoreStatic, p7: T7 ): (p1: T1, p5: T5, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, p3: T3, p4: T4, stub5: UnderscoreStatic, stub6: UnderscoreStatic, p7: T7 ): (p2: T2, p5: T5, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, p4: T4, stub5: UnderscoreStatic, stub6: UnderscoreStatic, p7: T7 ): (p1: T1, p2: T2, p5: T5, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, stub3: UnderscoreStatic, p4: T4, stub5: UnderscoreStatic, stub6: UnderscoreStatic, p7: T7 ): (p3: T3, p5: T5, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, p4: T4, stub5: UnderscoreStatic, stub6: UnderscoreStatic, p7: T7 ): (p1: T1, p3: T3, p5: T5, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, stub5: UnderscoreStatic, stub6: UnderscoreStatic, p7: T7 ): (p2: T2, p3: T3, p5: T5, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, p4: T4, stub5: UnderscoreStatic, stub6: UnderscoreStatic, p7: T7 ): (p1: T1, p2: T2, p3: T3, p5: T5, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, p3: T3, stub4: UnderscoreStatic, stub5: UnderscoreStatic, stub6: UnderscoreStatic, p7: T7 ): (p4: T4, p5: T5, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, p3: T3, stub4: UnderscoreStatic, stub5: UnderscoreStatic, stub6: UnderscoreStatic, p7: T7 ): (p1: T1, p4: T4, p5: T5, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, stub5: UnderscoreStatic, stub6: UnderscoreStatic, p7: T7 ): (p2: T2, p4: T4, p5: T5, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, p3: T3, stub4: UnderscoreStatic, stub5: UnderscoreStatic, stub6: UnderscoreStatic, p7: T7 ): (p1: T1, p2: T2, p4: T4, p5: T5, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, stub5: UnderscoreStatic, stub6: UnderscoreStatic, p7: T7 ): (p3: T3, p4: T4, p5: T5, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, p2: T2, stub3: UnderscoreStatic, stub4: UnderscoreStatic, stub5: UnderscoreStatic, stub6: UnderscoreStatic, p7: T7 ): (p1: T1, p3: T3, p4: T4, p5: T5, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, p1: T1, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, stub5: UnderscoreStatic, stub6: UnderscoreStatic, p7: T7 ): (p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T8; <T1, T2, T3, T4, T5, T6, T7, T8>( fn: (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6, p7: T7) => T8, stub1: UnderscoreStatic, stub2: UnderscoreStatic, stub3: UnderscoreStatic, stub4: UnderscoreStatic, stub5: UnderscoreStatic, stub6: UnderscoreStatic, p7: T7 ): (p1: T1, p2: T2, p3: T3, p4: T4, p5: T5, p6: T6) => T8;};
Partially apply a function by filling in any number of its arguments, without changing its dynamic this value. A close cousin of bind. You may pass _ in your list of arguments to specify an argument that should not be pre-filled, but left open to supply at call-time.
Parameter fn
Function to partially fill in arguments.
Parameter arguments
The partial arguments.
fn
with partially filled in arguments.
method partition
partition: <V extends Collection<any>>( list: V, iteratee?: Iteratee<V, boolean>, context?: any) => [Array<TypeOfCollection<V>>, Array<TypeOfCollection<V>>];
Splits
collection
into two arrays: one whose elements all satisfyiteratee
and one whose elements all do not satisfyiteratee
.Parameter collection
The collection to partition.
Parameter iteratee
The iteratee that defines the partitioning scheme for each element in
collection
.Parameter context
this
object initeratee
, optional.Returns
An array composed of two elements, where the first element contains the elements in
collection
that satisfied the predicate and the second element contains the elements that did not.
method pick
pick: { <V, K extends string>(object: V, ...keys: Array<K | K[]>): _Pick<V, K>; <V>( object: V, iterator: ObjectIterator<TypeOfDictionary<V, any>, boolean, V> ): Partial<V>;};
Return a copy of
object
that is filtered to only have values for the allowed keys (or array of keys).Parameter object
The object to pick specific keys in.
Parameter keys
The keys to keep on
object
.Returns
A copy of
object
with only thekeys
properties.Return a copy of
object
that is filtered to only have values for the keys selected by a truth test.Parameter object
The object to pick specific keys in.
Parameter iterator
A truth test that selects the keys to keep on
object
.Returns
A copy of
object
with only the keys selected byiterator
.
method pluck
pluck: <V extends Collection<any>, K extends string | number>( collection: V, propertyName: K) => Array<PropertyTypeOrAny<TypeOfCollection<V>, K>>;
A convenient version of what is perhaps the most common use-case for map: extracting a list of property values.
Parameter collection
The collection of items.
Parameter propertyName
The name of a specific property to retrieve from all items in
collection
.Returns
The set of values for the specified
propertyName
for each item incollection
.
method property
property: ( key: string | number | Array<string | number>) => (object: any) => any;
Returns a function that will itself return the key property of any passed-in object.
Parameter key
Property of the object. Function which accept an object an returns the value of key in that object.
method propertyOf
propertyOf: ( object: object) => (key: string | number | Array<string | number>) => any;
Returns a function that will itself return the value of a object key property.
Parameter key
The object to get the property value from. Function which accept a key property in
object
and returns its value.
method random
random: { (max: number): number; (min: number, max: number): number };
Returns a random integer between min and max, inclusive. If you only pass one argument, it will return a number between 0 and that number.
Parameter max
The maximum random number. A random number between 0 and
max
.Parameter min
The minimum random number. A random number between
min
andmax
.See Also
_.random
method range
range: (startOrStop: number, stop?: number, step?: number) => number[];
A function to create flexibly-numbered lists of integers, handy for
each
andmap
loops. Returns a list of integers fromstartOrStop
(inclusive) tostop
(exclusive), incremented (or decremented) bystep
. Note that ranges thatstop
before theystart
are considered to be zero-length instead of negative - if you'd like a negative range, use a negativestep
.If
stop
is not specified,startOrStop
will be the number to stop at and the default start of 0 will be used.Parameter startOrStop
If
stop
is specified, the number to start at. Otherwise, this is the number to stop at and the default start of 0 will be used.Parameter stop
The number to stop at.
Parameter step
The number to count up by each iteration, optional, default = 1.
Returns
An array of numbers from start to
stop
with increments ofstep
.
method reduce
reduce: { <V extends Collection<any>, TResult>( collection: V, iteratee: MemoCollectionIterator<TypeOfCollection<V>, TResult, V>, memo: TResult, context?: any ): TResult; <V extends Collection<any>, TResult = TypeOfCollection<V, never>>( collection: V, iteratee: MemoCollectionIterator< TypeOfCollection<V, never>, TResult | TypeOfCollection<V, never>, V > ): TResult | TypeOfCollection<V, never>;};
Also known as inject and foldl, reduce boils down a
collection
of values into a single value.memo
is the initial state of the reduction, and each successive step of it should be returned byiteratee
.If no memo is passed to the initial invocation of reduce,
iteratee
is not invoked on the first element ofcollection
. The first element is instead passed as the memo in the invocation ofiteratee
on the next element incollection
.Parameter collection
The collection to reduce.
Parameter iteratee
The function to call on each iteration to reduce the collection.
Parameter memo
The initial reduce state or undefined to use the first item in
collection
as initial state.Parameter context
this
object initeratee
, optional.Returns
The reduced result.
method reduceRight
reduceRight: { <V extends Collection<any>, TResult>( collection: V, iteratee: MemoCollectionIterator<TypeOfCollection<V>, TResult, V>, memo: TResult, context?: any ): TResult; <V extends Collection<any>, TResult = TypeOfCollection<V, never>>( collection: V, iteratee: MemoCollectionIterator< TypeOfCollection<V, never>, TResult | TypeOfCollection<V, never>, V > ): TResult | TypeOfCollection<V, never>;};
The right-associative version of reduce.
This is not as useful in JavaScript as it would be in a language with lazy evaluation.
Parameter collection
The collection to reduce.
Parameter iteratee
The function to call on each iteration to reduce the collection.
Parameter memo
The initial reduce state or undefined to use the first item in
collection
as the initial state.Parameter context
this
object initeratee
, optional.Returns
The reduced result.
method reject
reject: <V extends Collection<any>>( collection: V, iteratee?: Iteratee<V, boolean>, context?: any) => Array<TypeOfCollection<V>>;
Returns the values in
collection
without the elements that pass a truth test (iteratee
). The opposite of filter.Parameter collection
The collection to filter.
Parameter iteratee
The truth test to apply.
Parameter context
this
object initeratee
, optional.Returns
The set of values that fail the truth test.
method rest
rest: <V extends List<any>>(list: V, index?: number) => Array<TypeOfList<V>>;
Returns the rest of the elements in
list
. Pass anindex
to return the values of the list from that index onward.Parameter list
The list to retrieve elements from.
Parameter index
The index to start retrieving elements from, optional, default = 1.
Returns
The elements of
list
fromindex
to the end of the list.
method restArgs
restArgs: (func: Function, starIndex?: number) => Function;
Similar to ES6's rest param (http://ariya.ofilabs.com/2013/03/es6-and-rest-parameter.html) This accumulates the arguments passed into an array, after a given index.
method result
result: (object: any, property: string, defaultValue?: any) => any;
If the value of the named property is a function then invoke it; otherwise, return it.
Parameter object
Object to maybe invoke function
property
on.Parameter property
The function by name to invoke on
object
.Parameter defaultValue
The value to be returned in case
property
doesn't exist or is undefined. The result of invoking the functionproperty
on `object.
method sample
sample: { <V extends Collection<any>>(collection: V, n: number): Array< TypeOfCollection<V> >; <V extends Collection<any>>(collection: V): TypeOfCollection<V, never>;};
Produce a random sample from
collection
. Pass a number to returnn
random elements fromcollection
. Otherwise a single random item will be returned.Parameter collection
The collection to sample.
Parameter n
The number of elements to sample from
collection
.Returns
A random sample of
n
elements fromcollection
or a single element ifn
is not specified.
method shuffle
shuffle: <V extends Collection<any>>( collection: V) => Array<TypeOfCollection<V>>;
Returns a shuffled copy of
collection
, using a version of the Fisher-Yates shuffle.Parameter collection
The collection to shuffle.
Returns
A shuffled copy of
collection
.
method size
size: (collection: Collection<any>) => number;
Determines the number of values in
collection
.Parameter collection
The collection to determine the number of values for.
Returns
The number of values in
collection
.
method some
some: <V extends Collection<any>>( collection: V, iteratee?: Iteratee<V, boolean>, context?: any) => boolean;
Returns true if any of the values in
collection
pass theiteratee
truth test. Short-circuits and stops traversingcollection
if a true element is found.Parameter collection
The collection to evaluate.
Parameter iteratee
The truth test to apply.
Parameter context
this
object initeratee
, optional.Returns
True if any element passed the truth test, otherwise false.
method sortBy
sortBy: <V extends Collection<any>>( collection: V, iteratee?: Iteratee<V, any>, context?: any) => Array<TypeOfCollection<V>>;
Returns a (stably) sorted copy of
collection
, ranked in ascending order by the results of running each value throughiteratee
.Parameter collection
The collection to sort.
Parameter iteratee
An iteratee that provides the value to sort by for each item in
collection
.Parameter context
this
object initeratee
, optional.Returns
A sorted copy of
collection
.
method sortedIndex
sortedIndex: <V extends List<any>>( list: V, value: TypeOfList<V>, iteratee?: Iteratee<V | undefined, any>, context?: any) => number;
Uses a binary search to determine the lowest index at which the value should be inserted into
list
in order to maintainlist
's sorted order. If an iteratee is provided, it will be used to compute the sort ranking of each value, including the value you pass.Parameter list
A sorted list.
Parameter value
The value to determine an insert index for to mainain the sorting in
list
.Parameter iteratee
Iteratee to compute the sort ranking of each element including
value
, optional.Parameter context
this
object initeratee
, optional.Returns
The index where
value
should be inserted intolist
.
method tap
tap: <T>(object: T, intercepter: Function) => T;
Invokes interceptor with the object, and then returns object. The primary purpose of this method is to "tap into" a method chain, in order to perform operations on intermediate results within the chain.
Parameter object
Argument to
interceptor
.Parameter intercepter
The function to modify
object
before continuing the method chain. Modifiedobject
.
method template
template: ( templateString: string, settings?: _.TemplateSettings) => CompiledTemplate;
Compiles JavaScript templates into functions that can be evaluated for rendering. Useful for rendering complicated bits of HTML from JSON data sources. Template functions can both interpolate variables, using <%= ... %>, as well as execute arbitrary JavaScript code, with <% ... %>. If you wish to interpolate a value, and have it be HTML-escaped, use <%- ... %> When you evaluate a template function, pass in a data object that has properties corresponding to the template's free variables. If you're writing a one-off, you can pass the data object as the second parameter to template in order to render immediately instead of returning a template function. The settings argument should be a hash containing any _.templateSettings that should be overridden.
Parameter templateString
Underscore HTML template.
Parameter data
Data to use when compiling
templateString
.Parameter settings
Settings to use while compiling. Returns the compiled Underscore HTML template.
method throttle
throttle: <T extends Function>( func: T, wait: number, options?: _.ThrottleSettings) => T & _.Cancelable;
Creates and returns a new, throttled version of the passed function, that, when invoked repeatedly, will only actually call the original function at most once per every wait milliseconds. Useful for rate-limiting events that occur faster than you can keep up with. By default, throttle will execute the function as soon as you call it for the first time, and, if you call it again any number of times during the wait period, as soon as that period is over. If you'd like to disable the leading-edge call, pass {leading: false}, and if you'd like to disable the execution on the trailing-edge, pass {trailing: false}.
Parameter func
Function to throttle
waitMS
ms.Parameter wait
The number of milliseconds to wait before
fn
can be invoked again.Parameter options
Allows for disabling execution of the throttled function on either the leading or trailing edge.
fn
with a throttle ofwait
.
method times
times: <TResult>( n: number, iterator: (n: number) => TResult, context?: any) => TResult[];
Invokes the given iterator function n times. Each invocation of iterator is called with an index argument
Parameter n
Number of times to invoke
iterator
.Parameter iterator
Function iterator to invoke
n
times.Parameter context
this
object initerator
, optional.
method toArray
toArray: <V extends Collection<any>>( collection: V) => Array<TypeOfCollection<V>>;
Creates a real Array from
collection
(anything that can be iterated over). Useful for transmuting the arguments object.Parameter collection
The collection to transform into an array.
Returns
An array containing the elements of
collection
.
method toPath
toPath: <P>( path: P) => P extends ReadonlyArray<string | number> ? P : P extends string | number ? [P] : never;
Ensures that path is an array.
Parameter path
1. If path is a string, it is wrapped in a single-element array; 2. if it is an array already, it is returned unmodified.
method transpose
transpose: { <T, U, V>(lists: List<[T, U, V]>): [T[], U[], V[]]; <T, U>(lists: List<[T, U]>): [T[], U[]]; <T>(lists: List<[T]>): [T[]]; <T>(lists: List<List<T>>): T[][]; (lists: List<List<any>>): any[][]; (): [];};
method unescape
unescape: (str: string) => string;
The opposite of escape, replaces &, <, >, ", and ' with their unescaped counterparts.
Parameter str
HTML escaped string.
str
Raw string.
method union
union: <T>(...lists: Array<List<T>>) => T[];
Computes the union of the passed-in
lists
: the list of unique items, examined in order from first list to last list, that are present in one or more of the lists.Parameter lists
The lists to compute the union of.
Returns
The union of elements within
lists
.
method uniq
uniq: { <V extends List<any>>( list: V, isSorted?: boolean, iteratee?: Iteratee<V, any>, context?: any ): Array<TypeOfList<V>>; <V extends List<any>>( list: V, iteratee?: Iteratee<V, any, TypeOfCollection<V, never>>, context?: any ): TypeOfList<V>[];};
Produces a duplicate-free version of
list
, using === to test object equality. If you know in advance thatlist
is sorted, passing true for isSorted will run a much faster algorithm. If you want to compute unique items based on a transformation, pass an iteratee function.Parameter list
The list to remove duplicates from.
Parameter isSorted
True if
list
is already sorted, optional, default = false.Parameter iteratee
Transform the elements of
list
before comparisons for uniqueness.Parameter context
'this' object in
iteratee
, optional.Returns
An array containing only the unique elements in
list
.
method uniqueId
uniqueId: (prefix?: string) => string;
Generate a globally-unique id for client-side models or DOM elements that need one. If prefix is passed, the id will be appended to it. Without prefix, returns an integer.
Parameter prefix
A prefix string to start the unique ID with. Unique string ID beginning with
prefix
.
method unzip
unzip: { <T, U, V>(lists: List<[T, U, V]>): [T[], U[], V[]]; <T, U>(lists: List<[T, U]>): [T[], U[]]; <T>(lists: List<[T]>): [T[]]; <T>(lists: List<List<T>>): T[][]; (lists: List<List<any>>): any[][]; (): [];};
The opposite of zip. Given a list of lists, returns a series of new arrays, the first of which contains all of the first elements in the input lists, the second of which contains all of the second elements, and so on. (alias: transpose)
Parameter lists
The lists to unzip.
Returns
The unzipped version of
lists
.
method values
values: { <T>(object: _.Dictionary<T>): T[]; (object: any): any[] };
Return all of the values of the object's properties.
Parameter object
Retrieve the values of all the properties on this object. List of all the values on
object
.
method where
where: <V extends Collection<any>>( collection: V, properties: Partial<TypeOfCollection<V>>) => Array<TypeOfCollection<V>>;
Looks through each value in
collection
, returning an array of all the elements that match the key-value pairs listed inproperties
.Parameter collection
The collection in which to find elements that match
properties
.Parameter properties
The properties to check for on the elements within
collection
.Returns
The elements in
collection
that matchproperties
.
method without
without: <V extends List<any>>( list: V, ...values: Array<TypeOfList<V>>) => Array<TypeOfList<V>>;
Returns a copy of
list
with all instances ofvalues
removed.Parameter list
The list to exclude
values
from.Parameter values
The values to exclude from
list
.Returns
An array that contains all elements of
list
except forvalues
.
method wrap
wrap: (fn: Function, wrapper: (fn: Function, ...args: any[]) => any) => Function;
Wraps the first function inside of the wrapper function, passing it as the first argument. This allows the wrapper to execute code before and after the function runs, adjust the arguments, and execute it conditionally.
Parameter fn
Function to wrap.
Parameter wrapper
The function that will wrap
fn
. Wrapped version of `fn.
method zip
zip: { (): []; <T, U, V>(lists_0: List<T>, lists_1: List<U>, lists_2: List<V>): [T, U, V][]; <T, U>(lists_0: List<T>, lists_1: List<U>): [T, U][]; <T>(lists_0: List<T>): [T][]; <T>(...lists: List<T>[]): T[][]; (...lists: List<any>[]): any[][];};
Merges together the values of each of the
lists
with the values at the corresponding position. Useful when you have separate data sources that are coordinated through matching list indexes.Parameter lists
The lists to zip.
Returns
The zipped version of
lists
.
call signature
<V>(value: V): Underscore<TypeOfCollection<V>, V>;
Underscore OOP Wrapper, all Underscore functions that take an object as the first parameter can be invoked through this function.
Parameter value
First argument to Underscore object functions.
Returns
An Underscore wrapper around the supplied value.
Type Aliases
type AnyFalsy
type AnyFalsy = undefined | null | false | '' | 0;
type Collection
type Collection<T> = List<T> | Dictionary<T>;
type CollectionKey
type CollectionKey<V> = V extends never ? any : V extends List<any> ? number : V extends Dictionary<any> ? string : V extends undefined ? undefined : never;
type DeepestListItemOrSelf
type DeepestListItemOrSelf<T> = T extends List<infer TItem> & object ? TItem extends List<any> & object ? any : TItem : T;
type DeepTypeOfCollection
type DeepTypeOfCollection<V, P> = P extends [infer H, ...infer R] ? H extends keyof V ? DeepTypeOfCollection<V[H], R> : never : V;
type Iteratee
type Iteratee<V, R, T extends TypeOfCollection<V, any> = TypeOfCollection<V>> = | CollectionIterator<T, R, V> | string | number | Array<string | number> | Partial<T> | null | undefined;
type IterateeResult
type IterateeResult<I, T> = I extends (...args: any[]) => infer R ? R : I extends keyof T ? T[I] : I extends string | number | Array<string | number> ? any : I extends object ? boolean : I extends null | undefined ? T : never;
type ListItemOrSelf
type ListItemOrSelf<T> = T extends List<infer TItem> ? TItem : T;
type PairValue
type PairValue<T> = T extends Readonly<[string | number, infer TValue]> ? TValue : T extends List<infer TValue> ? TValue : never;
type PropertyTypeOrAny
type PropertyTypeOrAny<T, K> = K extends keyof T ? T[K] : any;
type Truthy
type Truthy<T> = Exclude<T, AnyFalsy>;
type TypedArray
type TypedArray = | Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array;
type TypeOfCollection
type TypeOfCollection<V, TObjectDefault = never> = V extends List<any> ? TypeOfList<V> : TypeOfDictionary<V, TObjectDefault>;
type TypeOfDictionary
type TypeOfDictionary<V, TDefault = never> = V extends never ? any : V extends Dictionary<infer T> ? T : TDefault;
type TypeOfList
type TypeOfList<V> = V extends never ? any : V extends List<infer T> ? T : never;
Namespaces
Package Files (1)
Dependencies (0)
No dependencies.
Dev Dependencies (0)
No dev dependencies.
Peer Dependencies (0)
No peer dependencies.
Badge
To add a badge like this oneto your package's README, use the codes available below.
You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/@types/underscore
.
- Markdown[![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/@types/underscore)
- HTML<a href="https://www.jsdocs.io/package/@types/underscore"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>
- Updated .
Package analyzed in 8836 ms. - Missing or incorrect documentation? Open an issue for this package.