diff --git a/lodash/lodash-tests.ts b/lodash/lodash-tests.ts index 627dda565..8ab1e8fd4 100644 --- a/lodash/lodash-tests.ts +++ b/lodash/lodash-tests.ts @@ -896,6 +896,18 @@ var foodDefaults = { 'name': 'apple' }; result = _.defaults(foodDefaults, { 'name': 'banana', 'type': 'fruit' }); result = <_.LoDashObjectWrapper>_(foodDefaults).defaults({ 'name': 'banana', 'type': 'fruit' }); +//_.defaultsDeep +interface DefaultsDeepResult { + user: { + name: string; + age: number; + } +} +var TestDefaultsDeepObject = {'user': {'name': 'barney'}}; +var TestDefaultsDeepSource = {'user': {'name': 'fred', 'age': 36}}; +result = _.defaultsDeep(TestDefaultsDeepObject, TestDefaultsDeepSource); +result = _(TestDefaultsDeepObject).defaultsDeep(TestDefaultsDeepSource).value(); + result = _.findKey({ 'a': 1, 'b': 2, 'c': 3, 'd': 4 }, function (num) { return num % 2 == 0; }); diff --git a/lodash/lodash.d.ts b/lodash/lodash.d.ts index 7bc1df648..bac25ad62 100644 --- a/lodash/lodash.d.ts +++ b/lodash/lodash.d.ts @@ -5564,6 +5564,26 @@ declare module _ { defaults(...sources: any[]): LoDashObjectWrapper } + //_.defaultsDeep + 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: T, + ...sources: any[]): TResult; + } + + interface LoDashObjectWrapper { + /** + * @see _.defaultsDeep + **/ + defaultsDeep(...sources: any[]): LoDashObjectWrapper + } + //_.findKey interface LoDashStatic { /**