diff --git a/lodash/lodash-tests.ts b/lodash/lodash-tests.ts index e3e8e5090..e28ff2768 100644 --- a/lodash/lodash-tests.ts +++ b/lodash/lodash-tests.ts @@ -196,26 +196,51 @@ module TestCompact { } // _.difference -{ - let testDifferenceArray: TResult[]; - let testDifferenceList: _.List; - let result: TResult[]; - result = _.difference(testDifferenceArray); - result = _.difference(testDifferenceArray, testDifferenceArray); - result = _.difference(testDifferenceArray, testDifferenceList, testDifferenceArray); - result = _.difference(testDifferenceArray, testDifferenceArray, testDifferenceList, testDifferenceArray); - result = _.difference(testDifferenceList); - result = _.difference(testDifferenceList, testDifferenceList); - result = _.difference(testDifferenceList, testDifferenceArray, testDifferenceList); - result = _.difference(testDifferenceList, testDifferenceList, testDifferenceArray, testDifferenceList); - result = _(testDifferenceArray).difference().value(); - result = _(testDifferenceArray).difference(testDifferenceArray).value(); - result = _(testDifferenceArray).difference(testDifferenceList, testDifferenceArray).value(); - result = _(testDifferenceArray).difference(testDifferenceArray, testDifferenceList, testDifferenceArray).value(); - result = _(testDifferenceList).difference().value(); - result = _(testDifferenceList).difference(testDifferenceList).value(); - result = _(testDifferenceList).difference(testDifferenceArray, testDifferenceList).value(); - result = _(testDifferenceList).difference(testDifferenceList, testDifferenceArray, testDifferenceList).value(); +module TestDifference { + let array: TResult[]; + let list: _.List; + + { + let result: TResult[]; + + result = _.difference(array); + result = _.difference(array, array); + result = _.difference(array, list, array); + result = _.difference(array, array, list, array); + + result = _.difference(list); + result = _.difference(list, list); + result = _.difference(list, array, list); + result = _.difference(list, list, array, list); + } + + { + let result: _.LoDashImplicitArrayWrapper; + + result = _(array).difference(); + result = _(array).difference(array); + result = _(array).difference(list, array); + result = _(array).difference(array, list, array); + + result = _(list).difference(); + result = _(list).difference(list); + result = _(list).difference(array, list); + result = _(list).difference(list, array, list); + } + + { + let result: _.LoDashExplicitArrayWrapper; + + result = _(array).chain().difference(); + result = _(array).chain().difference(array); + result = _(array).chain().difference(list, array); + result = _(array).chain().difference(array, list, array); + + result = _(list).chain().difference(); + result = _(list).chain().difference(list); + result = _(list).chain().difference(array, list); + result = _(list).chain().difference(list, array, list); + } } // _.drop diff --git a/lodash/lodash.d.ts b/lodash/lodash.d.ts index 320fd6c18..2972135ba 100644 --- a/lodash/lodash.d.ts +++ b/lodash/lodash.d.ts @@ -350,6 +350,20 @@ declare module _ { difference(...values: (TValue[]|List)[]): LoDashImplicitArrayWrapper; } + interface LoDashExplicitArrayWrapper { + /** + * @see _.difference + */ + difference(...values: (T[]|List)[]): LoDashExplicitArrayWrapper; + } + + interface LoDashExplicitObjectWrapper { + /** + * @see _.difference + */ + difference(...values: (TValue[]|List)[]): LoDashExplicitArrayWrapper; + } + //_.drop interface LoDashStatic { /**