diff --git a/types/lodash/lodash-tests.ts b/types/lodash/lodash-tests.ts index c30a3276f7..18a179c4c6 100644 --- a/types/lodash/lodash-tests.ts +++ b/types/lodash/lodash-tests.ts @@ -3775,77 +3775,75 @@ namespace TestCommit { // _.prototype.concat namespace TestConcat { - { - let result: _.LoDashImplicitArrayWrapper; + const numberROA: ReadonlyArray = [0]; - result = _(1).concat(2); - result = _(1).concat(2, 3); - result = _(1).concat(2, 3, 4); + _.concat(1); // $ExpectType number[] + _.concat([1]); // $ExpectType number[] + _.concat(numberROA); // $ExpectType number[] + _.concat(1, 2); // $ExpectType number[] + _.concat(1, [1]); // $ExpectType number[] + _.concat(1, [1], numberROA); // $ExpectType number[] - result = _(1).concat(2); - result = _(1).concat(2, 3); - result = _(1).concat(2, 3, 4); - } + _(1).concat(2); // $ExpectType LoDashImplicitWrapper + _(1).concat([1]); // $ExpectType LoDashImplicitWrapper + _(1).concat([2], numberROA); // $ExpectType LoDashImplicitWrapper + _([1]).concat(2); // $ExpectType LoDashImplicitWrapper + _(numberROA).concat(numberROA); // $ExpectType LoDashImplicitWrapper + _(numberROA).concat(numberROA, numberROA); // $ExpectType LoDashImplicitWrapper - { - let result: _.LoDashImplicitArrayWrapper; + _.chain(1).concat(2); // $ExpectType LoDashExplicitWrapper + _.chain(1).concat([1]); // $ExpectType LoDashExplicitWrapper + _.chain(1).concat([2], numberROA); // $ExpectType LoDashExplicitWrapper + _.chain([1]).concat(2); // $ExpectType LoDashExplicitWrapper + _.chain(numberROA).concat(numberROA); // $ExpectType LoDashExplicitWrapper + _.chain(numberROA).concat(numberROA, numberROA); // $ExpectType LoDashExplicitWrapper - result = _(['']).concat(['']); - result = _(['']).concat([''], ['']); - result = _(['']).concat([''], [''], ['']); + const stringROA: ReadonlyArray = ['']; - result = _(['']).concat(['']); - result = _(['']).concat([''], ['']); - result = _(['']).concat([''], [''], ['']); - } + _.concat('a'); // $ExpectType string[] + _.concat(['a']); // $ExpectType string[] + _.concat(stringROA); // $ExpectType string[] + _.concat('a', 'b'); // $ExpectType string[] + _.concat('a', ['a']); // $ExpectType string[] + _.concat('a', ['a'], stringROA); // $ExpectType string[] - { - let result: _.LoDashImplicitArrayWrapper<{a: string}>; + _('a').concat('b'); // $ExpectType LoDashImplicitWrapper + _('a').concat(['a']); // $ExpectType LoDashImplicitWrapper + _('a').concat(['b'], stringROA); // $ExpectType LoDashImplicitWrapper + _(['a']).concat('b'); // $ExpectType LoDashImplicitWrapper + _(stringROA).concat(stringROA); // $ExpectType LoDashImplicitWrapper + _(stringROA).concat(stringROA, stringROA); // $ExpectType LoDashImplicitWrapper - result = _({a: ''}).concat<{a: string}>({a: ''}); - result = _({a: ''}).concat<{a: string}>({a: ''}, {a: ''}); - result = _({a: ''}).concat<{a: string}>({a: ''}, {a: ''}, {a: ''}); + _.chain('a').concat('b'); // $ExpectType LoDashExplicitWrapper + _.chain('a').concat(['a']); // $ExpectType LoDashExplicitWrapper + _.chain('a').concat(['b'], stringROA); // $ExpectType LoDashExplicitWrapper + _.chain(['a']).concat('b'); // $ExpectType LoDashExplicitWrapper + _.chain(stringROA).concat(stringROA); // $ExpectType LoDashExplicitWrapper + _.chain(stringROA).concat(stringROA, stringROA); // $ExpectType LoDashExplicitWrapper - result = _({a: ''}).concat({a: ''}); - result = _({a: ''}).concat({a: ''}, {a: ''}); - result = _({a: ''}).concat({a: ''}, {a: ''}, {a: ''}); - } + const abcObject: AbcObject = { a: 1, b: 'foo', c: true }; + const objectROA: ReadonlyArray = [{ a: 1, b: 'foo', c: true }]; - { - let result: _.LoDashExplicitArrayWrapper; + _.concat(abcObject); // $ExpectType AbcObject[] + _.concat([abcObject]); // $ExpectType AbcObject[] + _.concat(objectROA); // $ExpectType AbcObject[] + _.concat(abcObject, abcObject); // $ExpectType AbcObject[] + _.concat(abcObject, [abcObject]); // $ExpectType AbcObject[] + _.concat(abcObject, [abcObject], objectROA); // $ExpectType AbcObject[] - result = _(1).chain().concat(2); - result = _(1).chain().concat(2, 3); - result = _(1).chain().concat(2, 3, 4); + _(abcObject).concat(abcObject); // $ExpectType LoDashImplicitWrapper + _(abcObject).concat([abcObject]); // $ExpectType LoDashImplicitWrapper + _(abcObject).concat([abcObject], objectROA); // $ExpectType LoDashImplicitWrapper + _([abcObject]).concat(abcObject); // $ExpectType LoDashImplicitWrapper + _(objectROA).concat(objectROA); // $ExpectType LoDashImplicitWrapper + _(objectROA).concat(objectROA, objectROA); // $ExpectType LoDashImplicitWrapper - result = _(1).chain().concat(2); - result = _(1).chain().concat(2, 3); - result = _(1).chain().concat(2, 3, 4); - } - - { - let result: _.LoDashExplicitArrayWrapper; - - result = _(['']).chain().concat(['']); - result = _(['']).chain().concat([''], ['']); - result = _(['']).chain().concat([''], [''], ['']); - - result = _(['']).chain().concat(['']); - result = _(['']).chain().concat([''], ['']); - result = _(['']).chain().concat([''], [''], ['']); - } - - { - let result: _.LoDashExplicitArrayWrapper<{a: string}>; - - result = _({a: ''}).chain().concat<{a: string}>({a: ''}); - result = _({a: ''}).chain().concat<{a: string}>({a: ''}, {a: ''}); - result = _({a: ''}).chain().concat<{a: string}>({a: ''}, {a: ''}, {a: ''}); - - result = _({a: ''}).chain().concat({a: ''}); - result = _({a: ''}).chain().concat({a: ''}, {a: ''}); - result = _({a: ''}).chain().concat({a: ''}, {a: ''}, {a: ''}); - } + _.chain(abcObject).concat(abcObject); // $ExpectType LoDashExplicitWrapper + _.chain(abcObject).concat([abcObject]); // $ExpectType LoDashExplicitWrapper + _.chain(abcObject).concat([abcObject], objectROA); // $ExpectType LoDashExplicitWrapper + _.chain([abcObject]).concat(abcObject); // $ExpectType LoDashExplicitWrapper + _.chain(objectROA).concat(objectROA); // $ExpectType LoDashExplicitWrapper + _.chain(objectROA).concat(objectROA, objectROA); // $ExpectType LoDashExplicitWrapper } // _.prototype.plant