cypress
Version:
Cypress is a next generation front end testing tool built for the modern web
1,263 lines • 95.3 kB
TypeScript
import _ = require("../index");
declare module "../index" {
interface LoDashStatic {
/**
* Assigns own enumerable properties of source objects to the destination
* object. Source objects are applied from left to right. Subsequent sources
* overwrite property assignments of previous sources.
*
* **Note:** This method mutates `object` and is loosely based on
* [`Object.assign`](https://mdn.io/Object/assign).
*
* @category Object
* @param object The destination object.
* @param [sources] The source objects.
* @returns Returns `object`.
* @example
*
* function Foo() {
* this.c = 3;
* }
*
* function Bar() {
* this.e = 5;
* }
*
* Foo.prototype.d = 4;
* Bar.prototype.f = 6;
*
* _.assign({ 'a': 1 }, new Foo, new Bar);
* // => { 'a': 1, 'c': 3, 'e': 5 }
*/
assign<TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
/**
* @see _.assign
*/
assign<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): TObject & TSource1 & TSource2;
/**
* @see _.assign
*/
assign<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): TObject & TSource1 & TSource2 & TSource3;
/**
* @see _.assign
*/
assign<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): TObject & TSource1 & TSource2 & TSource3 & TSource4;
/**
* @see _.assign
*/
assign<TObject>(object: TObject): TObject;
/**
* @see _.assign
*/
assign(object: any, ...otherArgs: any[]): any;
}
interface Object<T> {
/**
* @see _.assign
*/
assign<TSource>(source: TSource): Object<T & TSource>;
/**
* @see _.assign
*/
assign<TSource1, TSource2>(source1: TSource1, source2: TSource2): Object<T & TSource1 & TSource2>;
/**
* @see _.assign
*/
assign<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): Object<T & TSource1 & TSource2 & TSource3>;
/**
* @see _.assign
*/
assign<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
/**
* @see _.assign
*/
assign(): Object<T>;
/**
* @see _.assign
*/
assign(...otherArgs: any[]): Object<any>;
}
interface ObjectChain<T> {
/**
* @see _.assign
*/
assign<TSource>(source: TSource): ObjectChain<T & TSource>;
/**
* @see _.assign
*/
assign<TSource1, TSource2>(source1: TSource1, source2: TSource2): ObjectChain<T & TSource1 & TSource2>;
/**
* @see _.assign
*/
assign<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): ObjectChain<T & TSource1 & TSource2 & TSource3>;
/**
* @see _.assign
*/
assign<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
/**
* @see _.assign
*/
assign(): ObjectChain<T>;
/**
* @see _.assign
*/
assign(...otherArgs: any[]): ObjectChain<any>;
}
interface LoDashStatic {
/**
* This method is like `_.assign` except that it iterates over own and
* inherited source properties.
*
* **Note:** This method mutates `object`.
*
* @alias extend
* @category Object
* @param object The destination object.
* @param [sources] The source objects.
* @returns Returns `object`.
* @example
*
* function Foo() {
* this.b = 2;
* }
*
* function Bar() {
* this.d = 4;
* }
*
* Foo.prototype.c = 3;
* Bar.prototype.e = 5;
*
* _.assignIn({ 'a': 1 }, new Foo, new Bar);
* // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5 }
*/
assignIn<TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
/**
* @see _.assignIn
*/
assignIn<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): TObject & TSource1 & TSource2;
/**
* @see _.assignIn
*/
assignIn<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): TObject & TSource1 & TSource2 & TSource3;
/**
* @see _.assignIn
*/
assignIn<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): TObject & TSource1 & TSource2 & TSource3 & TSource4;
/**
* @see _.assignIn
*/
assignIn<TObject>(object: TObject): TObject;
/**
* @see _.assignIn
*/
assignIn<TResult>(object: any, ...otherArgs: any[]): TResult;
}
interface Object<T> {
/**
* @see _.assignIn
*/
assignIn<TSource>(source: TSource): Object<T & TSource>;
/**
* @see _.assignIn
*/
assignIn<TSource1, TSource2>(source1: TSource1, source2: TSource2): Object<T & TSource1 & TSource2>;
/**
* @see _.assignIn
*/
assignIn<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): Object<T & TSource1 & TSource2 & TSource3>;
/**
* @see _.assignIn
*/
assignIn<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
/**
* @see _.assignIn
*/
assignIn(): Object<T>;
/**
* @see _.assignIn
*/
assignIn<TResult>(...otherArgs: any[]): Object<TResult>;
}
interface ObjectChain<T> {
/**
* @see _.assignIn
*/
assignIn<TSource>(source: TSource): ObjectChain<T & TSource>;
/**
* @see _.assignIn
*/
assignIn<TSource1, TSource2>(source1: TSource1, source2: TSource2): ObjectChain<T & TSource1 & TSource2>;
/**
* @see _.assignIn
*/
assignIn<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): ObjectChain<T & TSource1 & TSource2 & TSource3>;
/**
* @see _.assignIn
*/
assignIn<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
/**
* @see _.assignIn
*/
assignIn(): ObjectChain<T>;
/**
* @see _.assignIn
*/
assignIn(...otherArgs: any[]): ObjectChain<any>;
}
type AssignCustomizer = (objectValue: any, sourceValue: any, key?: string, object?: {}, source?: {}) => any;
interface LoDashStatic {
/**
* This method is like `_.assignIn` except that it accepts `customizer` which
* is invoked to produce the assigned values. If `customizer` returns `undefined`
* assignment is handled by the method instead. The `customizer` is invoked
* with five arguments: (objValue, srcValue, key, object, source).
*
* **Note:** This method mutates `object`.
*
* @alias extendWith
* @category Object
* @param object The destination object.
* @param sources The source objects.
* @param [customizer] The function to customize assigned values.
* @returns Returns `object`.
* @example
*
* function customizer(objValue, srcValue) {
* return _.isUndefined(objValue) ? srcValue : objValue;
* }
*
* var defaults = _.partialRight(_.assignInWith, customizer);
*
* defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
* // => { 'a': 1, 'b': 2 }
*/
assignInWith<TObject, TSource>(object: TObject, source: TSource, customizer: AssignCustomizer): TObject & TSource;
/**
* @see _.assignInWith
*/
assignInWith<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2, customizer: AssignCustomizer): TObject & TSource1 & TSource2;
/**
* @see _.assignInWith
*/
assignInWith<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3;
/**
* @see _.assignInWith
*/
assignInWith<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3 & TSource4;
/**
* @see _.assignInWith
*/
assignInWith<TObject>(object: TObject): TObject;
/**
* @see _.assignInWith
*/
assignInWith<TResult>(object: any, ...otherArgs: any[]): TResult;
}
interface Object<T> {
/**
* @see _.assignInWith
*/
assignInWith<TSource>(source: TSource, customizer: AssignCustomizer): Object<T & TSource>;
/**
* @see _.assignInWith
*/
assignInWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): Object<T & TSource1 & TSource2>;
/**
* @see _.assignInWith
*/
assignInWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3>;
/**
* @see _.assignInWith
*/
assignInWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
/**
* @see _.assignInWith
*/
assignInWith(): Object<T>;
/**
* @see _.assignInWith
*/
assignInWith<TResult>(...otherArgs: any[]): Object<TResult>;
}
interface ObjectChain<T> {
/**
* @see _.assignInWith
*/
assignInWith<TSource>(source: TSource, customizer: AssignCustomizer): ObjectChain<T & TSource>;
/**
* @see _.assignInWith
*/
assignInWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2>;
/**
* @see _.assignInWith
*/
assignInWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3>;
/**
* @see _.assignInWith
*/
assignInWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
/**
* @see _.assignInWith
*/
assignInWith(): ObjectChain<T>;
/**
* @see _.assignInWith
*/
assignInWith(...otherArgs: any[]): ObjectChain<any>;
}
interface LoDashStatic {
/**
* This method is like `_.assign` except that it accepts `customizer` which
* is invoked to produce the assigned values. If `customizer` returns `undefined`
* assignment is handled by the method instead. The `customizer` is invoked
* with five arguments: (objValue, srcValue, key, object, source).
*
* **Note:** This method mutates `object`.
*
* @category Object
* @param object The destination object.
* @param sources The source objects.
* @param [customizer] The function to customize assigned values.
* @returns Returns `object`.
* @example
*
* function customizer(objValue, srcValue) {
* return _.isUndefined(objValue) ? srcValue : objValue;
* }
*
* var defaults = _.partialRight(_.assignWith, customizer);
*
* defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
* // => { 'a': 1, 'b': 2 }
*/
assignWith<TObject, TSource>(object: TObject, source: TSource, customizer: AssignCustomizer): TObject & TSource;
/**
* @see _.assignWith
*/
assignWith<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2, customizer: AssignCustomizer): TObject & TSource1 & TSource2;
/**
* @see _.assignWith
*/
assignWith<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3;
/**
* @see _.assignWith
*/
assignWith<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3 & TSource4;
/**
* @see _.assignWith
*/
assignWith<TObject>(object: TObject): TObject;
/**
* @see _.assignWith
*/
assignWith<TResult>(object: any, ...otherArgs: any[]): TResult;
}
interface Object<T> {
/**
* @see _.assignWith
*/
assignWith<TSource>(source: TSource, customizer: AssignCustomizer): Object<T & TSource>;
/**
* @see _.assignWith
*/
assignWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): Object<T & TSource1 & TSource2>;
/**
* @see _.assignWith
*/
assignWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3>;
/**
* @see _.assignWith
*/
assignWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
/**
* @see _.assignWith
*/
assignWith(): Object<T>;
/**
* @see _.assignWith
*/
assignWith<TResult>(...otherArgs: any[]): Object<TResult>;
}
interface ObjectChain<T> {
/**
* @see _.assignWith
*/
assignWith<TSource>(source: TSource, customizer: AssignCustomizer): ObjectChain<T & TSource>;
/**
* @see _.assignWith
*/
assignWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2>;
/**
* @see _.assignWith
*/
assignWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3>;
/**
* @see _.assignWith
*/
assignWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
/**
* @see _.assignWith
*/
assignWith(): ObjectChain<T>;
/**
* @see _.assignWith
*/
assignWith(...otherArgs: any[]): ObjectChain<any>;
}
interface LoDashStatic {
/**
* Creates an array of elements corresponding to the given keys, or indexes, of collection. Keys may be
* specified as individual arguments or as arrays of keys.
*
* @param object The object to iterate over.
* @param props The property names or indexes of elements to pick, specified individually or in arrays.
* @return Returns the new array of picked elements.
*/
at<T>(object: Dictionary<T> | NumericDictionary<T> | null | undefined, ...props: PropertyPath[]): T[];
/**
* @see _.at
*/
at<T extends object>(object: T | null | undefined, ...props: Array<Many<keyof T>>): Array<T[keyof T]>;
}
interface Object<T> {
/**
* @see _.at
*/
at(...props: Array<Many<keyof T>>): Collection<T[keyof T]>;
}
interface Collection<T> {
/**
* @see _.at
*/
at(...props: PropertyPath[]): Collection<T>;
}
interface ObjectChain<T> {
/**
* @see _.at
*/
at(...props: Array<Many<keyof T>>): CollectionChain<T[keyof T]>;
}
interface CollectionChain<T> {
/**
* @see _.at
*/
at(...props: PropertyPath[]): CollectionChain<T>;
}
interface LoDashStatic {
/**
* Creates an object that inherits from the given prototype object. If a properties object is provided its own
* enumerable properties are assigned to the created object.
*
* @param prototype The object to inherit from.
* @param properties The properties to assign to the object.
* @return Returns the new object.
*/
create<T extends object, U extends object>(prototype: T, properties?: U): T & U;
}
interface Object<T> {
/**
* @see _.create
*/
create<U extends object>(properties?: U): Object<T & U>;
}
interface ObjectChain<T> {
/**
* @see _.create
*/
create<U extends object>(properties?: U): ObjectChain<T & U>;
}
interface LoDashStatic {
/**
* Assigns own enumerable properties of source object(s) to the destination object for all destination
* properties that resolve to undefined. Once a property is set, additional values of the same property are
* ignored.
*
* Note: This method mutates object.
*
* @param object The destination object.
* @param sources The source objects.
* @return The destination object.
*/
defaults<TObject, TSource>(object: TObject, source: TSource): NonNullable<TSource & TObject>;
/**
* @see _.defaults
*/
defaults<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): NonNullable<TSource2 & TSource1 & TObject>;
/**
* @see _.defaults
*/
defaults<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): NonNullable<TSource3 & TSource2 & TSource1 & TObject>;
/**
* @see _.defaults
*/
defaults<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): NonNullable<TSource4 & TSource3 & TSource2 & TSource1 & TObject>;
/**
* @see _.defaults
*/
defaults<TObject>(object: TObject): NonNullable<TObject>;
/**
* @see _.defaults
*/
defaults(object: any, ...sources: any[]): any;
}
interface Object<T> {
/**
* @see _.defaults
*/
defaults<TSource>(source: TSource): Object<NonNullable<TSource & T>>;
/**
* @see _.defaults
*/
defaults<TSource1, TSource2>(source1: TSource1, source2: TSource2): Object<NonNullable<TSource2 & TSource1 & T>>;
/**
* @see _.defaults
*/
defaults<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): Object<NonNullable<TSource3 & TSource2 & TSource1 & T>>;
/**
* @see _.defaults
*/
defaults<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): Object<NonNullable<TSource4 & TSource3 & TSource2 & TSource1 & T>>;
/**
* @see _.defaults
*/
defaults(): Object<NonNullable<T>>;
/**
* @see _.defaults
*/
defaults(...sources: any[]): Object<any>;
}
interface ObjectChain<T> {
/**
* @see _.defaults
*/
defaults<TSource>(source: TSource): ObjectChain<NonNullable<TSource & T>>;
/**
* @see _.defaults
*/
defaults<TSource1, TSource2>(source1: TSource1, source2: TSource2): ObjectChain<NonNullable<TSource2 & TSource1 & T>>;
/**
* @see _.defaults
*/
defaults<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): ObjectChain<NonNullable<TSource3 & TSource2 & TSource1 & T>>;
/**
* @see _.defaults
*/
defaults<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): ObjectChain<NonNullable<TSource4 & TSource3 & TSource2 & TSource1 & T>>;
/**
* @see _.defaults
*/
defaults(): ObjectChain<NonNullable<T>>;
/**
* @see _.defaults
*/
defaults(...sources: any[]): ObjectChain<any>;
}
interface LoDashStatic {
/**
* This method is like _.defaults except that it recursively assigns default properties.
* @param object The destination object.
* @param sources The source objects.
* @return Returns object.
*/
defaultsDeep(object: any, ...sources: any[]): any;
}
interface Object<T> {
/**
* @see _.defaultsDeep
*/
defaultsDeep(...sources: any[]): Object<any>;
}
interface ObjectChain<T> {
/**
* @see _.defaultsDeep
*/
defaultsDeep(...sources: any[]): ObjectChain<any>;
}
interface LoDashStatic {
/**
* @see _.toPairs
*/
entries<T>(object?: Dictionary<T> | NumericDictionary<T>): Array<[string, T]>;
/**
* @see _.entries
*/
entries(object?: object): Array<[string, any]>;
}
interface Object<T> {
/**
* @see _.entries
*/
entries(): Collection<[string, T[keyof T]]>;
}
interface LoDashImplicitWrapper<TValue> {
/**
* @see _.entries
*/
entries(): Collection<[string, any]>;
}
interface ObjectChain<T> {
/**
* @see _.entries
*/
entries(): CollectionChain<[string, T[keyof T]]>;
}
interface LoDashExplicitWrapper<TValue> {
/**
* @see _.entries
*/
entries(): CollectionChain<[string, any]>;
}
interface LoDashStatic {
/**
* @see _.entriesIn
*/
entriesIn<T>(object?: Dictionary<T> | NumericDictionary<T>): Array<[string, T]>;
/**
* @see _.entriesIn
*/
entriesIn(object?: object): Array<[string, any]>;
}
interface Object<T> {
/**
* @see _.entriesIn
*/
entriesIn(): Collection<[string, T[keyof T]]>;
}
interface LoDashImplicitWrapper<TValue> {
/**
* @see _.entriesIn
*/
entriesIn(): Collection<[string, any]>;
}
interface ObjectChain<T> {
/**
* @see _.entriesIn
*/
entriesIn(): CollectionChain<[string, T[keyof T]]>;
}
interface LoDashExplicitWrapper<TValue> {
/**
* @see _.entriesIn
*/
entriesIn(): CollectionChain<[string, any]>;
}
interface LoDashStatic {
/**
* @see _.extend
*/
extend<TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
/**
* @see _.extend
*/
extend<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): TObject & TSource1 & TSource2;
/**
* @see _.extend
*/
extend<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): TObject & TSource1 & TSource2 & TSource3;
/**
* @see _.extend
*/
extend<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): TObject & TSource1 & TSource2 & TSource3 & TSource4;
/**
* @see _.extend
*/
extend<TObject>(object: TObject): TObject;
/**
* @see _.extend
*/
extend<TResult>(object: any, ...otherArgs: any[]): TResult;
}
interface Object<T> {
/**
* @see _.extend
*/
extend<TSource>(source: TSource): Object<T & TSource>;
/**
* @see _.extend
*/
extend<TSource1, TSource2>(source1: TSource1, source2: TSource2): Object<T & TSource1 & TSource2>;
/**
* @see _.extend
*/
extend<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): Object<T & TSource1 & TSource2 & TSource3>;
/**
* @see _.extend
*/
extend<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
/**
* @see _.extend
*/
extend(): Object<T>;
/**
* @see _.extend
*/
extend(...otherArgs: any[]): Object<any>;
}
interface ObjectChain<T> {
/**
* @see _.extend
*/
extend<TSource>(source: TSource): ObjectChain<T & TSource>;
/**
* @see _.extend
*/
extend<TSource1, TSource2>(source1: TSource1, source2: TSource2): ObjectChain<T & TSource1 & TSource2>;
/**
* @see _.extend
*/
extend<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): ObjectChain<T & TSource1 & TSource2 & TSource3>;
/**
* @see _.extend
*/
extend<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
/**
* @see _.extend
*/
extend(): ObjectChain<T>;
/**
* @see _.extend
*/
extend(...otherArgs: any[]): ObjectChain<any>;
}
interface LoDashStatic {
/**
* @see _.extendWith
*/
extendWith<TObject, TSource>(object: TObject, source: TSource, customizer: AssignCustomizer): TObject & TSource;
/**
* @see _.extendWith
*/
extendWith<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2, customizer: AssignCustomizer): TObject & TSource1 & TSource2;
/**
* @see _.extendWith
*/
extendWith<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3;
/**
* @see _.extendWith
*/
extendWith<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3 & TSource4;
/**
* @see _.extendWith
*/
extendWith<TObject>(object: TObject): TObject;
/**
* @see _.extendWith
*/
extendWith<TResult>(object: any, ...otherArgs: any[]): TResult;
}
interface Object<T> {
/**
* @see _.extendWith
*/
extendWith<TSource>(source: TSource, customizer: AssignCustomizer): Object<T & TSource>;
/**
* @see _.extendWith
*/
extendWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): Object<T & TSource1 & TSource2>;
/**
* @see _.extendWith
*/
extendWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3>;
/**
* @see _.extendWith
*/
extendWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
/**
* @see _.extendWith
*/
extendWith(): Object<T>;
/**
* @see _.extendWith
*/
extendWith(...otherArgs: any[]): Object<any>;
}
interface ObjectChain<T> {
/**
* @see _.extendWith
*/
extendWith<TSource>(source: TSource, customizer: AssignCustomizer): ObjectChain<T & TSource>;
/**
* @see _.extendWith
*/
extendWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2>;
/**
* @see _.extendWith
*/
extendWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3>;
/**
* @see _.extendWith
*/
extendWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
/**
* @see _.extendWith
*/
extendWith(): ObjectChain<T>;
/**
* @see _.extendWith
*/
extendWith(...otherArgs: any[]): ObjectChain<any>;
}
interface LoDashStatic {
/**
* This method is like _.find except that it returns the key of the first element predicate returns truthy for
* instead of the element itself.
*
* @param object The object to search.
* @param predicate The function invoked per iteration.
* @return Returns the key of the matched element, else undefined.
*/
findKey<T>(object: T | null | undefined, predicate?: ObjectIteratee<T>): string | undefined;
}
interface LoDashImplicitWrapper<TValue> {
/**
* @see _.findKey
*/
findKey(predicate?: ObjectIteratee<TValue>): string | undefined;
}
interface LoDashExplicitWrapper<TValue> {
/**
* @see _.findKey
*/
findKey(predicate?: ObjectIteratee<TValue>): StringNullableChain;
}
interface LoDashStatic {
/**
* This method is like _.findKey except that it iterates over elements of a collection in the opposite order.
*
* @param object The object to search.
* @param predicate The function invoked per iteration.
* @return Returns the key of the matched element, else undefined.
*/
findLastKey<T>(object: T | null | undefined, predicate?: ObjectIteratee<T>): string | undefined;
}
interface LoDashImplicitWrapper<TValue> {
/**
* @see _.findLastKey
*/
findLastKey(predicate?: ObjectIteratee<TValue>): string | undefined;
}
interface LoDashExplicitWrapper<TValue> {
/**
* @see _.findLastKey
*/
findLastKey(predicate?: ObjectIteratee<TValue>): StringNullableChain;
}
interface LoDashStatic {
/**
* Iterates over own and inherited enumerable properties of an object invoking iteratee for each property. The
* iteratee is invoked with three arguments: (value, key, object). Iteratee functions may
* exit iteration early by explicitly returning false.
*
* @param object The object to iterate over.
* @param iteratee The function invoked per iteration.
* @return Returns object.
*/
forIn<T>(object: T, iteratee?: ObjectIterator<T, any>): T;
/**
* @see _.forIn
*/
forIn<T>(object: T | null | undefined, iteratee?: ObjectIterator<T, any>): T | null | undefined;
}
interface LoDashImplicitWrapper<TValue> {
/**
* @see _.forIn
*/
forIn(iteratee?: ObjectIterator<TValue, any>): this;
}
interface LoDashExplicitWrapper<TValue> {
/**
* @see _.forIn
*/
forIn(iteratee?: ObjectIterator<TValue, any>): this;
}
interface LoDashStatic {
/**
* This method is like _.forIn except that it iterates over properties of object in the opposite order.
*
* @param object The object to iterate over.
* @param iteratee The function invoked per iteration.
* @return Returns object.
*/
forInRight<T>(object: T, iteratee?: ObjectIterator<T, any>): T;
/**
* @see _.forInRight
*/
forInRight<T>(object: T | null | undefined, iteratee?: ObjectIterator<T, any>): T | null | undefined;
}
interface LoDashImplicitWrapper<TValue> {
/**
* @see _.forInRight
*/
forInRight(iteratee?: ObjectIterator<TValue, any>): this;
}
interface LoDashExplicitWrapper<TValue> {
/**
* @see _.forInRight
*/
forInRight(iteratee?: ObjectIterator<TValue, any>): this;
}
interface LoDashStatic {
/**
* Iterates over own enumerable properties of an object invoking iteratee for each property. The iteratee is
* invoked with three arguments: (value, key, object). Iteratee functions may exit
* iteration early by explicitly returning false.
*
* @param object The object to iterate over.
* @param iteratee The function invoked per iteration.
* @return Returns object.
*/
forOwn<T>(object: T, iteratee?: ObjectIterator<T, any>): T;
/**
* @see _.forOwn
*/
forOwn<T>(object: T | null | undefined, iteratee?: ObjectIterator<T, any>): T | null | undefined;
}
interface LoDashImplicitWrapper<TValue> {
/**
* @see _.forOwn
*/
forOwn(iteratee?: ObjectIterator<TValue, any>): this;
}
interface LoDashExplicitWrapper<TValue> {
/**
* @see _.forOwn
*/
forOwn(iteratee?: ObjectIterator<TValue, any>): this;
}
interface LoDashStatic {
/**
* This method is like _.forOwn except that it iterates over properties of object in the opposite order.
*
* @param object The object to iterate over.
* @param iteratee The function invoked per iteration.
* @return Returns object.
*/
forOwnRight<T>(object: T, iteratee?: ObjectIterator<T, any>): T;
/**
* @see _.forOwnRight
*/
forOwnRight<T>(object: T | null | undefined, iteratee?: ObjectIterator<T, any>): T | null | undefined;
}
interface LoDashImplicitWrapper<TValue> {
/**
* @see _.forOwnRight
*/
forOwnRight(iteratee?: ObjectIterator<TValue, any>): this;
}
interface LoDashExplicitWrapper<TValue> {
/**
* @see _.forOwnRight
*/
forOwnRight(iteratee?: ObjectIterator<TValue, any>): this;
}
interface LoDashStatic {
/**
* Creates an array of function property names from own enumerable properties
* of `object`.
*
* @category Object
* @param object The object to inspect.
* @returns Returns the new array of property names.
* @example
*
* function Foo() {
* this.a = _.constant('a');
* this.b = _.constant('b');
* }
*
* Foo.prototype.c = _.constant('c');
*
* _.functions(new Foo);
* // => ['a', 'b']
*/
functions(object: any): string[];
}
interface LoDashImplicitWrapper<TValue> {
/**
* @see _.functions
*/
functions(): Collection<string>;
}
interface LoDashExplicitWrapper<TValue> {
/**
* @see _.functions
*/
functions(): CollectionChain<string>;
}
interface LoDashStatic {
/**
* Creates an array of function property names from own and inherited
* enumerable properties of `object`.
*
* @category Object
* @param object The object to inspect.
* @returns Returns the new array of property names.
* @example
*
* function Foo() {
* this.a = _.constant('a');
* this.b = _.constant('b');
* }
*
* Foo.prototype.c = _.constant('c');
*
* _.functionsIn(new Foo);
* // => ['a', 'b', 'c']
*/
functionsIn<T extends {}>(object: any): string[];
}
interface LoDashImplicitWrapper<TValue> {
/**
* @see _.functionsIn
*/
functionsIn(): Collection<string>;
}
interface LoDashExplicitWrapper<TValue> {
/**
* @see _.functionsIn
*/
functionsIn(): CollectionChain<string>;
}
interface LoDashStatic {
/**
* Gets the property value at path of object. If the resolved value is undefined the defaultValue is used
* in its place.
*
* @param object The object to query.
* @param path The path of the property to get.
* @param defaultValue The value returned if the resolved value is undefined.
* @return Returns the resolved value.
*/
get<TObject extends object, TKey extends keyof TObject>(object: TObject, path: TKey | [TKey]): TObject[TKey];
/**
* @see _.get
*/
get<TObject extends object, TKey extends keyof TObject>(object: TObject | null | undefined, path: TKey | [TKey]): TObject[TKey] | undefined;
/**
* @see _.get
*/
get<TObject extends object, TKey extends keyof TObject, TDefault>(object: TObject | null | undefined, path: TKey | [TKey], defaultValue: TDefault): Exclude<TObject[TKey], undefined> | TDefault;
/**
* @see _.get
*/
get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1]>(object: TObject, path: [TKey1, TKey2]): TObject[TKey1][TKey2];
/**
* @see _.get
*/
get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1]>(object: TObject | null | undefined, path: [TKey1, TKey2]): TObject[TKey1][TKey2] | undefined;
/**
* @see _.get
*/
get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TDefault>(object: TObject | null | undefined, path: [TKey1, TKey2], defaultValue: TDefault): Exclude<TObject[TKey1][TKey2], undefined> | TDefault;
/**
* @see _.get
*/
get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TKey3 extends keyof TObject[TKey1][TKey2]>(object: TObject, path: [TKey1, TKey2, TKey3]): TObject[TKey1][TKey2][TKey3];
/**
* @see _.get
*/
get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TKey3 extends keyof TObject[TKey1][TKey2]>(object: TObject | null | undefined, path: [TKey1, TKey2, TKey3]): TObject[TKey1][TKey2][TKey3] | undefined;
/**
* @see _.get
*/
get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TKey3 extends keyof TObject[TKey1][TKey2], TDefault>(object: TObject | null | undefined, path: [TKey1, TKey2, TKey3], defaultValue: TDefault): Exclude<TObject[TKey1][TKey2][TKey3], undefined> | TDefault;
/**
* @see _.get
*/
get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TKey3 extends keyof TObject[TKey1][TKey2], TKey4 extends keyof TObject[TKey1][TKey2][TKey3]>(object: TObject, path: [TKey1, TKey2, TKey3, TKey4]): TObject[TKey1][TKey2][TKey3][TKey4];
/**
* @see _.get
*/
get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TKey3 extends keyof TObject[TKey1][TKey2], TKey4 extends keyof TObject[TKey1][TKey2][TKey3]>(object: TObject | null | undefined, path: [TKey1, TKey2, TKey3, TKey4]): TObject[TKey1][TKey2][TKey3][TKey4] | undefined;
/**
* @see _.get
*/
get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TKey3 extends keyof TObject[TKey1][TKey2], TKey4 extends keyof TObject[TKey1][TKey2][TKey3], TDefault>(object: TObject | null | undefined, path: [TKey1, TKey2, TKey3, TKey4], defaultValue: TDefault): Exclude<TObject[TKey1][TKey2][TKey3][TKey4], undefined> | TDefault;
/**
* @see _.get
*/
get<T>(object: NumericDictionary<T>, path: number): T;
/**
* @see _.get
*/
get<T>(object: NumericDictionary<T> | null | undefined, path: number): T | undefined;
/**
* @see _.get
*/
get<T, TDefault>(object: NumericDictionary<T> | null | undefined, path: number, defaultValue: TDefault): T | TDefault;
/**
* @see _.get
*/
get<TDefault>(object: null | undefined, path: PropertyPath, defaultValue: TDefault): TDefault;
/**
* @see _.get
*/
get(object: null | undefined, path: PropertyPath): undefined;
/**
* @see _.get
*/
get(object: any, path: PropertyPath, defaultValue?: any): any;
}
interface String {
/**
* @see _.get
*/
get(path: number | number[]): string;
/**
* @see _.get
*/
get(path: number | number[], defaultValue: string): string;
}
interface Object<T> {
/**
* @see _.get
*/
get<TKey extends keyof T>(path: TKey | [TKey]): T[TKey];
/**
* @see _.get
*/
get<TKey extends keyof T, TDefault>(path: TKey | [TKey], defaultValue: TDefault): Exclude<T[TKey], undefined> | TDefault;
/**
* @see _.get
*/
get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1]>(path: [TKey1, TKey2]): T[TKey1][TKey2];
/**
* @see _.get
*/
get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TDefault>(path: [TKey1, TKey2], defaultValue: TDefault): Exclude<T[TKey1][TKey2], undefined> | TDefault;
/**
* @see _.get
*/
get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2]>(path: [TKey1, TKey2, TKey3]): T[TKey1][TKey2][TKey3];
/**
* @see _.get
*/
get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2], TDefault>(path: [TKey1, TKey2, TKey3], defaultValue: TDefault): Exclude<T[TKey1][TKey2][TKey3], undefined> | TDefault;
/**
* @see _.get
*/
get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2], TKey4 extends keyof T[TKey1][TKey2][TKey3]>(path: [TKey1, TKey2, TKey3, TKey4]): T[TKey1][TKey2][TKey3][TKey4];
/**
* @see _.get
*/
get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2], TKey4 extends keyof T[TKey1][TKey2][TKey3], TDefault>(path: [TKey1, TKey2, TKey3, TKey4], defaultValue: TDefault): Exclude<T[TKey1][TKey2][TKey3][TKey4], undefined> | TDefault;
/**
* @see _.get
*/
get(path: PropertyPath, defaultValue?: any): any;
}
interface Collection<T> {
/**
* @see _.get
*/
get(path: number): T;
/**
* @see _.get
*/
get<TDefault>(path: number, defaultValue: TDefault): T | TDefault;
}
interface StringChain {
/**
* @see _.get
*/
get(path: number | number[]): StringChain;
/**
* @see _.get
*/
get(path: number | number[], defaultValue: string): StringChain;
}
interface StringNullableChain {
/**
* @see _.get
*/
get(path: number | number[]): StringNullableChain;
/**
* @see _.get
*/
get(path: number | number[], defaultValue: string): StringChain;
}
interface ObjectChain<T> {
/**
* @see _.get
*/
get<TKey extends keyof T>(path: TKey | [TKey]): ExpChain<T[TKey]>;
/**
* @see _.get
*/
get<TKey extends keyof T>(path: TKey | [TKey], defaultValue: never[]): T[TKey] extends any[] ? ExpChain<Exclude<T[TKey], undefined>> : ExpChain<Exclude<T[TKey], undefined> | never[]>;
/**
* @see _.get
*/
get<TKey extends keyof T, TDefault>(path: TKey | [TKey], defaultValue: TDefault): ExpChain<Exclude<T[TKey], undefined> | TDefault>;
/**
* @see _.get
*/
get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1]>(path: [TKey1, TKey2]): ExpChain<T[TKey1][TKey2]>;
/**
* @see _.get
*/
get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1]>(path: [TKey1, TKey2], defaultValue: never[]): T[TKey1][TKey2] extends any[] ? ExpChain<Exclude<T[TKey1][TKey2], undefined>> : ExpChain<Exclude<T[TKey1][TKey2], undefined> | never[]>;
/**
* @see _.get
*/
get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TDefault>(path: [TKey1, TKey2], defaultValue: TDefault): ExpChain<Exclude<T[TKey1][TKey2], undefined> | TDefault>;
/**
* @see _.get
*/
get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2]>(path: [TKey1, TKey2, TKey3]): ExpChain<T[TKey1][TKey2][TKey3]>;
/**
* @see _.get
*/
get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2]>(path: [TKey1, TKey2, TKey3], defaultValue: never[]): T[TKey1][TKey2][TKey3] extends any[] ? ExpChain<Exclude<T[TKey1][TKey2][TKey3], undefined>> : ExpChain<Exclude<T[TKey1][TKey2][TKey3], undefined> | never[]>;
/**
* @see _.get
*/
get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2], TDefault>(path: [TKey1, TKey2, TKey3], defaultValue: TDefault): ExpChain<Exclude<T[TKey1][TKey2][TKey3], undefined> | TDefault>;
/**
* @see _.get
*/
get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2], TKey4 extends keyof T[TKey1][TKey2][TKey3]>(path: [TKey1, TKey2, TKey3, TKey4]): ExpChain<T[TKey1][TKey2][TKey3][TKey4]>;
/**
* @see _.get
*/
get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2], TKey4 extends keyof T[TKey1][TKey2][TKey3]>(path: [TKey1, TKey2, TKey3, TKey4], defaultValue: never[]): T[TKey1][TKey2][TKey3][TKey4] extends any[] ? ExpChain<Exclude<T[TKey1][TKey2][TKey3][TKey4], undefined>> : ExpChain<Exclude<T[TKey1][TKey2][TKey3][TKey4], undefined> | never[]>;
/**
* @see _.get
*/
get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2], TKey4 extends keyof T[TKey1][TKey2][TKey3], TDefault>(path: [TKey1, TKey2, TKey3, TKey4], defaultValue: TDefault): ExpChain<Exclude<T[TKey1][TKey2][TKey3][TKey4], undefined> | TDefault>;
/**
* @see _.get
*/
get(path: PropertyPath, defaultValue?: any): LoDashExplicitWrapper<any>;
}
interface CollectionChain<T> {
/**
* @see _.get
*/
get(path: number): ExpChain<T>;
/**
* @see _.get
*/
get<TDefault>(path: number, defaultValue: TDefault): ExpChain<T | TDefault>;
}
interface LoDashStatic {
/**
* Checks if `path` is a direct property of `object`.
*
* @category Object
* @param object The object to query.
* @param path The path to check.
* @returns Returns `true` if `path` exists, else `false`.
* @example
*
* var object = { 'a': { 'b': { 'c': 3 } } };
* var other = _.create({ 'a': _.create({ 'b': _.create({ 'c': 3 }) }) });
*
* _.has(object, 'a');
* // => true
*
* _.has(object, 'a.b.c');
* // => true
*
* _.ha