diff --git a/lodash/lodash-tests.ts b/lodash/lodash-tests.ts index 3afc49041b..03c952702e 100644 --- a/lodash/lodash-tests.ts +++ b/lodash/lodash-tests.ts @@ -644,35 +644,60 @@ module TestRemove { let array: TResult[]; let list: _.List; let predicateFn: (value: TResult, index?: number, collection?: _.List) => boolean; - let result: TResult[]; - result = _.remove(array); - result = _.remove(array, predicateFn); - result = _.remove(array, predicateFn, any); - result = _.remove(array, ''); - result = _.remove(array, '', any); - result = _.remove<{a: number}, TResult>(array, {a: 42}); + { + let result: TResult[]; - result = _.remove(list); - result = _.remove(list, predicateFn); - result = _.remove(list, predicateFn, any); - result = _.remove(list, ''); - result = _.remove(list, '', any); - result = _.remove<{a: number}, TResult>(list, {a: 42}); + result = _.remove(array); + result = _.remove(array, predicateFn); + result = _.remove(array, predicateFn, any); + result = _.remove(array, ''); + result = _.remove(array, '', any); + result = _.remove<{a: number}, TResult>(array, {a: 42}); - result = _(array).remove().value(); - result = _(array).remove(predicateFn).value(); - result = _(array).remove(predicateFn, any).value(); - result = _(array).remove('').value(); - result = _(array).remove('', any).value(); - result = _(array).remove<{a: number}>({a: 42}).value(); + result = _.remove(list); + result = _.remove(list, predicateFn); + result = _.remove(list, predicateFn, any); + result = _.remove(list, ''); + result = _.remove(list, '', any); + result = _.remove<{a: number}, TResult>(list, {a: 42}); + } - result = _(list).remove().value(); - result = _(list).remove(predicateFn).value(); - result = _(list).remove(predicateFn, any).value(); - result = _(list).remove('').value(); - result = _(list).remove('', any).value(); - result = _(list).remove<{a: number}, TResult>({a: 42}).value(); + { + let result: _.LoDashImplicitArrayWrapper; + + result = _(array).remove(); + result = _(array).remove(predicateFn); + result = _(array).remove(predicateFn, any); + result = _(array).remove(''); + result = _(array).remove('', any); + result = _(array).remove<{a: number}>({a: 42}); + + result = _(list).remove(); + result = _(list).remove(predicateFn); + result = _(list).remove(predicateFn, any); + result = _(list).remove(''); + result = _(list).remove('', any); + result = _(list).remove<{a: number}, TResult>({a: 42}); + } + + { + let result: _.LoDashExplicitArrayWrapper; + + result = _(array).chain().remove(); + result = _(array).chain().remove(predicateFn); + result = _(array).chain().remove(predicateFn, any); + result = _(array).chain().remove(''); + result = _(array).chain().remove('', any); + result = _(array).chain().remove<{a: number}>({a: 42}); + + result = _(list).chain().remove(); + result = _(list).chain().remove(predicateFn); + result = _(list).chain().remove(predicateFn, any); + result = _(list).chain().remove(''); + result = _(list).chain().remove('', any); + result = _(list).chain().remove<{a: number}, TResult>({a: 42}); + } } // _.rest diff --git a/lodash/lodash.d.ts b/lodash/lodash.d.ts index d143f4e657..95fc3319df 100644 --- a/lodash/lodash.d.ts +++ b/lodash/lodash.d.ts @@ -1285,6 +1285,56 @@ declare module _ { ): LoDashImplicitArrayWrapper; } + interface LoDashExplicitArrayWrapper { + /** + * @see _.remove + */ + remove( + predicate?: ListIterator, + thisArg?: any + ): LoDashExplicitArrayWrapper; + + /** + * @see _.remove + */ + remove( + predicate?: string, + thisArg?: any + ): LoDashExplicitArrayWrapper; + + /** + * @see _.remove + */ + remove( + predicate?: W + ): LoDashExplicitArrayWrapper; + } + + interface LoDashExplicitObjectWrapper { + /** + * @see _.remove + */ + remove( + predicate?: ListIterator, + thisArg?: any + ): LoDashExplicitArrayWrapper; + + /** + * @see _.remove + */ + remove( + predicate?: string, + thisArg?: any + ): LoDashExplicitArrayWrapper; + + /** + * @see _.remove + */ + remove( + predicate?: W + ): LoDashExplicitArrayWrapper; + } + //_.rest interface LoDashStatic { /**