@umijs/utils 3.5.20 → 4.0.0-beta.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/README.md +2 -0
  2. package/compiled/address/index.js +1 -0
  3. package/compiled/address/lib/address.d.ts +28 -0
  4. package/compiled/address/package.json +1 -0
  5. package/compiled/axios/LICENSE +19 -0
  6. package/compiled/axios/index.d.ts +206 -0
  7. package/compiled/axios/index.js +1 -0
  8. package/compiled/axios/package.json +1 -0
  9. package/compiled/chalk/LICENSE +9 -0
  10. package/compiled/chalk/index.d.ts +415 -0
  11. package/compiled/chalk/index.js +1 -0
  12. package/compiled/chalk/package.json +1 -0
  13. package/compiled/cheerio/LICENSE +21 -0
  14. package/compiled/cheerio/domelementtype/lib/index.d.ts +48 -0
  15. package/compiled/cheerio/domhandler/lib/index.d.ts +85 -0
  16. package/compiled/cheerio/domhandler/lib/node.d.ts +169 -0
  17. package/compiled/cheerio/htmlparser2/lib/Parser.d.ts +159 -0
  18. package/compiled/cheerio/htmlparser2/lib/Tokenizer.d.ts +182 -0
  19. package/compiled/cheerio/htmlparser2/lib/index.d.ts +39 -0
  20. package/compiled/cheerio/index.js +16 -0
  21. package/compiled/cheerio/lib/api/attributes.d.ts +317 -0
  22. package/compiled/cheerio/lib/api/css.d.ts +41 -0
  23. package/compiled/cheerio/lib/api/forms.d.ts +31 -0
  24. package/compiled/cheerio/lib/api/manipulation.d.ts +496 -0
  25. package/compiled/cheerio/lib/api/traversing.d.ts +644 -0
  26. package/compiled/cheerio/lib/cheerio.d.ts +53 -0
  27. package/compiled/cheerio/lib/index.d.ts +91 -0
  28. package/compiled/cheerio/lib/load.d.ts +73 -0
  29. package/compiled/cheerio/lib/options.d.ts +31 -0
  30. package/compiled/cheerio/lib/static.d.ts +88 -0
  31. package/compiled/cheerio/lib/types.d.ts +20 -0
  32. package/compiled/cheerio/package.json +1 -0
  33. package/compiled/color/LICENSE +21 -0
  34. package/compiled/color/color-convert/conversions.d.ts +149 -0
  35. package/compiled/color/color-convert/index.d.ts +128 -0
  36. package/compiled/color/color-convert/route.d.ts +294 -0
  37. package/compiled/color/color-name/index.d.ts +161 -0
  38. package/compiled/color/index.d.ts +137 -0
  39. package/compiled/color/index.js +1 -0
  40. package/compiled/color/package.json +1 -0
  41. package/compiled/cross-spawn/LICENSE +21 -0
  42. package/compiled/cross-spawn/index.d.ts +36 -0
  43. package/compiled/cross-spawn/index.js +1 -0
  44. package/compiled/cross-spawn/package.json +1 -0
  45. package/compiled/debug/LICENSE +20 -0
  46. package/compiled/debug/index.d.ts +54 -0
  47. package/compiled/debug/index.js +1 -0
  48. package/compiled/debug/ms/index.d.ts +25 -0
  49. package/compiled/debug/package.json +1 -0
  50. package/compiled/deepmerge/index.d.ts +16 -0
  51. package/compiled/deepmerge/index.js +1 -0
  52. package/compiled/deepmerge/package.json +1 -0
  53. package/compiled/execa/LICENSE +9 -0
  54. package/compiled/execa/index.d.ts +564 -0
  55. package/compiled/execa/index.js +1 -0
  56. package/compiled/execa/package.json +1 -0
  57. package/compiled/fs-extra/LICENSE +15 -0
  58. package/compiled/fs-extra/index.d.ts +332 -0
  59. package/compiled/fs-extra/index.js +1 -0
  60. package/compiled/fs-extra/package.json +1 -0
  61. package/compiled/glob/LICENSE +21 -0
  62. package/compiled/glob/index.d.ts +89 -0
  63. package/compiled/glob/index.js +1 -0
  64. package/compiled/glob/minimatch/index.d.ts +204 -0
  65. package/compiled/glob/package.json +1 -0
  66. package/compiled/import-lazy/LICENSE +9 -0
  67. package/compiled/import-lazy/index.d.ts +26 -0
  68. package/compiled/import-lazy/index.js +1 -0
  69. package/compiled/import-lazy/package.json +1 -0
  70. package/compiled/lodash/LICENSE +47 -0
  71. package/compiled/lodash/common/array.d.ts +2126 -0
  72. package/compiled/lodash/common/collection.d.ts +1930 -0
  73. package/compiled/lodash/common/common.d.ts +280 -0
  74. package/compiled/lodash/common/date.d.ts +23 -0
  75. package/compiled/lodash/common/function.d.ts +1430 -0
  76. package/compiled/lodash/common/lang.d.ts +1692 -0
  77. package/compiled/lodash/common/math.d.ts +405 -0
  78. package/compiled/lodash/common/number.d.ts +131 -0
  79. package/compiled/lodash/common/object.d.ts +2519 -0
  80. package/compiled/lodash/common/seq.d.ts +210 -0
  81. package/compiled/lodash/common/string.d.ts +788 -0
  82. package/compiled/lodash/common/util.d.ts +1219 -0
  83. package/compiled/lodash/index.d.ts +46 -0
  84. package/compiled/lodash/index.js +9 -0
  85. package/compiled/lodash/package.json +1 -0
  86. package/compiled/mustache/LICENSE +11 -0
  87. package/compiled/mustache/index.d.ts +437 -0
  88. package/compiled/mustache/index.js +5 -0
  89. package/compiled/mustache/package.json +1 -0
  90. package/compiled/pkg-up/LICENSE +9 -0
  91. package/compiled/pkg-up/index.d.ts +48 -0
  92. package/compiled/pkg-up/index.js +1 -0
  93. package/compiled/pkg-up/package.json +1 -0
  94. package/compiled/portfinder/LICENSE +22 -0
  95. package/compiled/portfinder/index.js +1 -0
  96. package/compiled/portfinder/lib/portfinder.d.ts +47 -0
  97. package/compiled/portfinder/package.json +1 -0
  98. package/compiled/prettier/LICENSE +7 -0
  99. package/compiled/prettier/index.d.ts +756 -0
  100. package/compiled/prettier/index.js +263 -0
  101. package/compiled/prettier/package.json +1 -0
  102. package/compiled/prompts/LICENSE +21 -0
  103. package/compiled/prompts/index.d.ts +120 -0
  104. package/compiled/prompts/index.js +1 -0
  105. package/compiled/prompts/package.json +1 -0
  106. package/compiled/resolve/LICENSE +21 -0
  107. package/compiled/resolve/index.d.ts +166 -0
  108. package/compiled/resolve/index.js +1 -0
  109. package/compiled/resolve/package.json +1 -0
  110. package/compiled/rimraf/LICENSE +15 -0
  111. package/compiled/rimraf/glob/index.d.ts +89 -0
  112. package/compiled/rimraf/index.d.ts +49 -0
  113. package/compiled/rimraf/index.js +1 -0
  114. package/compiled/rimraf/minimatch/index.d.ts +204 -0
  115. package/compiled/rimraf/package.json +1 -0
  116. package/compiled/semver/LICENSE +15 -0
  117. package/compiled/semver/classes/comparator.d.ts +17 -0
  118. package/compiled/semver/classes/range.d.ts +21 -0
  119. package/compiled/semver/classes/semver.d.ts +62 -0
  120. package/compiled/semver/functions/clean.d.ts +8 -0
  121. package/compiled/semver/functions/cmp.d.ts +16 -0
  122. package/compiled/semver/functions/coerce.d.ts +12 -0
  123. package/compiled/semver/functions/compare-build.d.ts +16 -0
  124. package/compiled/semver/functions/compare-loose.d.ts +5 -0
  125. package/compiled/semver/functions/compare.d.ts +20 -0
  126. package/compiled/semver/functions/diff.d.ts +13 -0
  127. package/compiled/semver/functions/eq.d.ts +9 -0
  128. package/compiled/semver/functions/gt.d.ts +9 -0
  129. package/compiled/semver/functions/gte.d.ts +9 -0
  130. package/compiled/semver/functions/inc.d.ts +15 -0
  131. package/compiled/semver/functions/lt.d.ts +9 -0
  132. package/compiled/semver/functions/lte.d.ts +8 -0
  133. package/compiled/semver/functions/major.d.ts +9 -0
  134. package/compiled/semver/functions/minor.d.ts +9 -0
  135. package/compiled/semver/functions/neq.d.ts +9 -0
  136. package/compiled/semver/functions/parse.d.ts +12 -0
  137. package/compiled/semver/functions/patch.d.ts +9 -0
  138. package/compiled/semver/functions/prerelease.d.ts +12 -0
  139. package/compiled/semver/functions/rcompare.d.ts +15 -0
  140. package/compiled/semver/functions/rsort.d.ts +9 -0
  141. package/compiled/semver/functions/satisfies.d.ts +14 -0
  142. package/compiled/semver/functions/sort.d.ts +9 -0
  143. package/compiled/semver/functions/valid.d.ts +11 -0
  144. package/compiled/semver/index.d.ts +133 -0
  145. package/compiled/semver/index.js +1 -0
  146. package/compiled/semver/internals/identifiers.d.ts +13 -0
  147. package/compiled/semver/package.json +1 -0
  148. package/compiled/semver/ranges/gtr.d.ts +14 -0
  149. package/compiled/semver/ranges/intersects.d.ts +13 -0
  150. package/compiled/semver/ranges/ltr.d.ts +14 -0
  151. package/compiled/semver/ranges/max-satisfying.d.ts +14 -0
  152. package/compiled/semver/ranges/min-satisfying.d.ts +14 -0
  153. package/compiled/semver/ranges/min-version.d.ts +10 -0
  154. package/compiled/semver/ranges/outside.d.ts +15 -0
  155. package/compiled/semver/ranges/simplify.d.ts +14 -0
  156. package/compiled/semver/ranges/subset.d.ts +13 -0
  157. package/compiled/semver/ranges/to-comparators.d.ts +9 -0
  158. package/compiled/semver/ranges/valid.d.ts +12 -0
  159. package/compiled/strip-ansi/LICENSE +9 -0
  160. package/compiled/strip-ansi/index.d.ts +17 -0
  161. package/compiled/strip-ansi/index.js +1 -0
  162. package/compiled/strip-ansi/package.json +1 -0
  163. package/compiled/yargs-parser/index.d.ts +112 -0
  164. package/compiled/yargs-parser/index.js +1 -0
  165. package/compiled/yargs-parser/package.json +1 -0
  166. package/dist/BaseGenerator/BaseGenerator.d.ts +18 -0
  167. package/dist/BaseGenerator/BaseGenerator.js +58 -0
  168. package/dist/BaseGenerator/generateFile.d.ts +8 -0
  169. package/dist/BaseGenerator/generateFile.js +25 -0
  170. package/{lib → dist}/Generator/Generator.d.ts +3 -3
  171. package/dist/Generator/Generator.js +74 -0
  172. package/dist/importLazy.d.ts +6 -0
  173. package/dist/importLazy.js +17 -0
  174. package/dist/index.d.ts +33 -0
  175. package/dist/index.js +88 -0
  176. package/dist/installDeps.d.ts +9 -0
  177. package/dist/installDeps.js +39 -0
  178. package/dist/logger.d.ts +14 -0
  179. package/dist/logger.js +39 -0
  180. package/dist/npmClient.d.ts +15 -0
  181. package/dist/npmClient.js +43 -0
  182. package/dist/randomColor/randomColor.d.ts +6 -0
  183. package/dist/randomColor/randomColor.js +19 -0
  184. package/dist/register.d.ts +6 -0
  185. package/dist/register.js +48 -0
  186. package/dist/updatePackageJSON.d.ts +5 -0
  187. package/dist/updatePackageJSON.js +21 -0
  188. package/dist/winPath.d.ts +1 -0
  189. package/dist/winPath.js +11 -0
  190. package/package.json +102 -18
  191. package/lib/BabelRegister/BabelRegister.d.ts +0 -9
  192. package/lib/BabelRegister/BabelRegister.js +0 -66
  193. package/lib/Generator/Generator.js +0 -120
  194. package/lib/cheerio/cheerio.d.ts +0 -2
  195. package/lib/cheerio/cheerio.js +0 -37
  196. package/lib/cleanRequireCache/cleanRequireCache.d.ts +0 -1
  197. package/lib/cleanRequireCache/cleanRequireCache.js +0 -40
  198. package/lib/compatESModuleRequire/compatESModuleRequire.d.ts +0 -7
  199. package/lib/compatESModuleRequire/compatESModuleRequire.js +0 -22
  200. package/lib/delay/delay.d.ts +0 -1
  201. package/lib/delay/delay.js +0 -22
  202. package/lib/getFile/getFile.d.ts +0 -22
  203. package/lib/getFile/getFile.js +0 -85
  204. package/lib/index.d.ts +0 -66
  205. package/lib/index.js +0 -619
  206. package/lib/isLernaPackage/isLernaPackage.d.ts +0 -1
  207. package/lib/isLernaPackage/isLernaPackage.js +0 -42
  208. package/lib/mergeConfig/mergeConfig.d.ts +0 -8
  209. package/lib/mergeConfig/mergeConfig.js +0 -42
  210. package/lib/parseRequireDeps/parseRequireDeps.d.ts +0 -1
  211. package/lib/parseRequireDeps/parseRequireDeps.js +0 -98
  212. package/lib/randomColor/randomColor.d.ts +0 -6
  213. package/lib/randomColor/randomColor.js +0 -42
  214. package/lib/routes.d.ts +0 -11
  215. package/lib/routes.js +0 -53
  216. package/lib/ssr.d.ts +0 -12
  217. package/lib/ssr.js +0 -41
  218. package/lib/types.d.ts +0 -7
  219. package/lib/types.js +0 -17
  220. package/lib/winEOL/winEOL.d.ts +0 -7
  221. package/lib/winEOL/winEOL.js +0 -39
  222. package/lib/winPath/winPath.d.ts +0 -1
  223. package/lib/winPath/winPath.js +0 -28
@@ -0,0 +1,2519 @@
1
+ import _ = require("../index");
2
+ declare module "../index" {
3
+ interface LoDashStatic {
4
+ /**
5
+ * Assigns own enumerable properties of source objects to the destination
6
+ * object. Source objects are applied from left to right. Subsequent sources
7
+ * overwrite property assignments of previous sources.
8
+ *
9
+ * **Note:** This method mutates `object` and is loosely based on
10
+ * [`Object.assign`](https://mdn.io/Object/assign).
11
+ *
12
+ * @category Object
13
+ * @param object The destination object.
14
+ * @param [sources] The source objects.
15
+ * @returns Returns `object`.
16
+ * @example
17
+ *
18
+ * function Foo() {
19
+ * this.c = 3;
20
+ * }
21
+ *
22
+ * function Bar() {
23
+ * this.e = 5;
24
+ * }
25
+ *
26
+ * Foo.prototype.d = 4;
27
+ * Bar.prototype.f = 6;
28
+ *
29
+ * _.assign({ 'a': 1 }, new Foo, new Bar);
30
+ * // => { 'a': 1, 'c': 3, 'e': 5 }
31
+ */
32
+ assign<TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
33
+ /**
34
+ * @see _.assign
35
+ */
36
+ assign<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): TObject & TSource1 & TSource2;
37
+ /**
38
+ * @see _.assign
39
+ */
40
+ assign<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): TObject & TSource1 & TSource2 & TSource3;
41
+ /**
42
+ * @see _.assign
43
+ */
44
+ assign<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): TObject & TSource1 & TSource2 & TSource3 & TSource4;
45
+ /**
46
+ * @see _.assign
47
+ */
48
+ assign<TObject>(object: TObject): TObject;
49
+ /**
50
+ * @see _.assign
51
+ */
52
+ assign(object: any, ...otherArgs: any[]): any;
53
+ }
54
+ interface Object<T> {
55
+ /**
56
+ * @see _.assign
57
+ */
58
+ assign<TSource>(source: TSource): Object<T & TSource>;
59
+ /**
60
+ * @see _.assign
61
+ */
62
+ assign<TSource1, TSource2>(source1: TSource1, source2: TSource2): Object<T & TSource1 & TSource2>;
63
+ /**
64
+ * @see _.assign
65
+ */
66
+ assign<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): Object<T & TSource1 & TSource2 & TSource3>;
67
+ /**
68
+ * @see _.assign
69
+ */
70
+ assign<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
71
+ /**
72
+ * @see _.assign
73
+ */
74
+ assign(): Object<T>;
75
+ /**
76
+ * @see _.assign
77
+ */
78
+ assign(...otherArgs: any[]): Object<any>;
79
+ }
80
+ interface ObjectChain<T> {
81
+ /**
82
+ * @see _.assign
83
+ */
84
+ assign<TSource>(source: TSource): ObjectChain<T & TSource>;
85
+ /**
86
+ * @see _.assign
87
+ */
88
+ assign<TSource1, TSource2>(source1: TSource1, source2: TSource2): ObjectChain<T & TSource1 & TSource2>;
89
+ /**
90
+ * @see _.assign
91
+ */
92
+ assign<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): ObjectChain<T & TSource1 & TSource2 & TSource3>;
93
+ /**
94
+ * @see _.assign
95
+ */
96
+ assign<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
97
+ /**
98
+ * @see _.assign
99
+ */
100
+ assign(): ObjectChain<T>;
101
+ /**
102
+ * @see _.assign
103
+ */
104
+ assign(...otherArgs: any[]): ObjectChain<any>;
105
+ }
106
+ interface LoDashStatic {
107
+ /**
108
+ * This method is like `_.assign` except that it iterates over own and
109
+ * inherited source properties.
110
+ *
111
+ * **Note:** This method mutates `object`.
112
+ *
113
+ * @alias extend
114
+ * @category Object
115
+ * @param object The destination object.
116
+ * @param [sources] The source objects.
117
+ * @returns Returns `object`.
118
+ * @example
119
+ *
120
+ * function Foo() {
121
+ * this.b = 2;
122
+ * }
123
+ *
124
+ * function Bar() {
125
+ * this.d = 4;
126
+ * }
127
+ *
128
+ * Foo.prototype.c = 3;
129
+ * Bar.prototype.e = 5;
130
+ *
131
+ * _.assignIn({ 'a': 1 }, new Foo, new Bar);
132
+ * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5 }
133
+ */
134
+ assignIn<TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
135
+ /**
136
+ * @see _.assignIn
137
+ */
138
+ assignIn<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): TObject & TSource1 & TSource2;
139
+ /**
140
+ * @see _.assignIn
141
+ */
142
+ assignIn<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): TObject & TSource1 & TSource2 & TSource3;
143
+ /**
144
+ * @see _.assignIn
145
+ */
146
+ assignIn<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): TObject & TSource1 & TSource2 & TSource3 & TSource4;
147
+ /**
148
+ * @see _.assignIn
149
+ */
150
+ assignIn<TObject>(object: TObject): TObject;
151
+ /**
152
+ * @see _.assignIn
153
+ */
154
+ assignIn<TResult>(object: any, ...otherArgs: any[]): TResult;
155
+ }
156
+ interface Object<T> {
157
+ /**
158
+ * @see _.assignIn
159
+ */
160
+ assignIn<TSource>(source: TSource): Object<T & TSource>;
161
+ /**
162
+ * @see _.assignIn
163
+ */
164
+ assignIn<TSource1, TSource2>(source1: TSource1, source2: TSource2): Object<T & TSource1 & TSource2>;
165
+ /**
166
+ * @see _.assignIn
167
+ */
168
+ assignIn<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): Object<T & TSource1 & TSource2 & TSource3>;
169
+ /**
170
+ * @see _.assignIn
171
+ */
172
+ assignIn<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
173
+ /**
174
+ * @see _.assignIn
175
+ */
176
+ assignIn(): Object<T>;
177
+ /**
178
+ * @see _.assignIn
179
+ */
180
+ assignIn<TResult>(...otherArgs: any[]): Object<TResult>;
181
+ }
182
+ interface ObjectChain<T> {
183
+ /**
184
+ * @see _.assignIn
185
+ */
186
+ assignIn<TSource>(source: TSource): ObjectChain<T & TSource>;
187
+ /**
188
+ * @see _.assignIn
189
+ */
190
+ assignIn<TSource1, TSource2>(source1: TSource1, source2: TSource2): ObjectChain<T & TSource1 & TSource2>;
191
+ /**
192
+ * @see _.assignIn
193
+ */
194
+ assignIn<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): ObjectChain<T & TSource1 & TSource2 & TSource3>;
195
+ /**
196
+ * @see _.assignIn
197
+ */
198
+ assignIn<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
199
+ /**
200
+ * @see _.assignIn
201
+ */
202
+ assignIn(): ObjectChain<T>;
203
+ /**
204
+ * @see _.assignIn
205
+ */
206
+ assignIn(...otherArgs: any[]): ObjectChain<any>;
207
+ }
208
+ type AssignCustomizer = (objectValue: any, sourceValue: any, key?: string, object?: {}, source?: {}) => any;
209
+ interface LoDashStatic {
210
+ /**
211
+ * This method is like `_.assignIn` except that it accepts `customizer` which
212
+ * is invoked to produce the assigned values. If `customizer` returns `undefined`
213
+ * assignment is handled by the method instead. The `customizer` is invoked
214
+ * with five arguments: (objValue, srcValue, key, object, source).
215
+ *
216
+ * **Note:** This method mutates `object`.
217
+ *
218
+ * @alias extendWith
219
+ * @category Object
220
+ * @param object The destination object.
221
+ * @param sources The source objects.
222
+ * @param [customizer] The function to customize assigned values.
223
+ * @returns Returns `object`.
224
+ * @example
225
+ *
226
+ * function customizer(objValue, srcValue) {
227
+ * return _.isUndefined(objValue) ? srcValue : objValue;
228
+ * }
229
+ *
230
+ * var defaults = _.partialRight(_.assignInWith, customizer);
231
+ *
232
+ * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
233
+ * // => { 'a': 1, 'b': 2 }
234
+ */
235
+ assignInWith<TObject, TSource>(object: TObject, source: TSource, customizer: AssignCustomizer): TObject & TSource;
236
+ /**
237
+ * @see _.assignInWith
238
+ */
239
+ assignInWith<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2, customizer: AssignCustomizer): TObject & TSource1 & TSource2;
240
+ /**
241
+ * @see _.assignInWith
242
+ */
243
+ assignInWith<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3;
244
+ /**
245
+ * @see _.assignInWith
246
+ */
247
+ assignInWith<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3 & TSource4;
248
+ /**
249
+ * @see _.assignInWith
250
+ */
251
+ assignInWith<TObject>(object: TObject): TObject;
252
+ /**
253
+ * @see _.assignInWith
254
+ */
255
+ assignInWith<TResult>(object: any, ...otherArgs: any[]): TResult;
256
+ }
257
+ interface Object<T> {
258
+ /**
259
+ * @see _.assignInWith
260
+ */
261
+ assignInWith<TSource>(source: TSource, customizer: AssignCustomizer): Object<T & TSource>;
262
+ /**
263
+ * @see _.assignInWith
264
+ */
265
+ assignInWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): Object<T & TSource1 & TSource2>;
266
+ /**
267
+ * @see _.assignInWith
268
+ */
269
+ assignInWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3>;
270
+ /**
271
+ * @see _.assignInWith
272
+ */
273
+ assignInWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
274
+ /**
275
+ * @see _.assignInWith
276
+ */
277
+ assignInWith(): Object<T>;
278
+ /**
279
+ * @see _.assignInWith
280
+ */
281
+ assignInWith<TResult>(...otherArgs: any[]): Object<TResult>;
282
+ }
283
+ interface ObjectChain<T> {
284
+ /**
285
+ * @see _.assignInWith
286
+ */
287
+ assignInWith<TSource>(source: TSource, customizer: AssignCustomizer): ObjectChain<T & TSource>;
288
+ /**
289
+ * @see _.assignInWith
290
+ */
291
+ assignInWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2>;
292
+ /**
293
+ * @see _.assignInWith
294
+ */
295
+ assignInWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3>;
296
+ /**
297
+ * @see _.assignInWith
298
+ */
299
+ assignInWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
300
+ /**
301
+ * @see _.assignInWith
302
+ */
303
+ assignInWith(): ObjectChain<T>;
304
+ /**
305
+ * @see _.assignInWith
306
+ */
307
+ assignInWith(...otherArgs: any[]): ObjectChain<any>;
308
+ }
309
+ interface LoDashStatic {
310
+ /**
311
+ * This method is like `_.assign` except that it accepts `customizer` which
312
+ * is invoked to produce the assigned values. If `customizer` returns `undefined`
313
+ * assignment is handled by the method instead. The `customizer` is invoked
314
+ * with five arguments: (objValue, srcValue, key, object, source).
315
+ *
316
+ * **Note:** This method mutates `object`.
317
+ *
318
+ * @category Object
319
+ * @param object The destination object.
320
+ * @param sources The source objects.
321
+ * @param [customizer] The function to customize assigned values.
322
+ * @returns Returns `object`.
323
+ * @example
324
+ *
325
+ * function customizer(objValue, srcValue) {
326
+ * return _.isUndefined(objValue) ? srcValue : objValue;
327
+ * }
328
+ *
329
+ * var defaults = _.partialRight(_.assignWith, customizer);
330
+ *
331
+ * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
332
+ * // => { 'a': 1, 'b': 2 }
333
+ */
334
+ assignWith<TObject, TSource>(object: TObject, source: TSource, customizer: AssignCustomizer): TObject & TSource;
335
+ /**
336
+ * @see _.assignWith
337
+ */
338
+ assignWith<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2, customizer: AssignCustomizer): TObject & TSource1 & TSource2;
339
+ /**
340
+ * @see _.assignWith
341
+ */
342
+ assignWith<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3;
343
+ /**
344
+ * @see _.assignWith
345
+ */
346
+ assignWith<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3 & TSource4;
347
+ /**
348
+ * @see _.assignWith
349
+ */
350
+ assignWith<TObject>(object: TObject): TObject;
351
+ /**
352
+ * @see _.assignWith
353
+ */
354
+ assignWith<TResult>(object: any, ...otherArgs: any[]): TResult;
355
+ }
356
+ interface Object<T> {
357
+ /**
358
+ * @see _.assignWith
359
+ */
360
+ assignWith<TSource>(source: TSource, customizer: AssignCustomizer): Object<T & TSource>;
361
+ /**
362
+ * @see _.assignWith
363
+ */
364
+ assignWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): Object<T & TSource1 & TSource2>;
365
+ /**
366
+ * @see _.assignWith
367
+ */
368
+ assignWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3>;
369
+ /**
370
+ * @see _.assignWith
371
+ */
372
+ assignWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
373
+ /**
374
+ * @see _.assignWith
375
+ */
376
+ assignWith(): Object<T>;
377
+ /**
378
+ * @see _.assignWith
379
+ */
380
+ assignWith<TResult>(...otherArgs: any[]): Object<TResult>;
381
+ }
382
+ interface ObjectChain<T> {
383
+ /**
384
+ * @see _.assignWith
385
+ */
386
+ assignWith<TSource>(source: TSource, customizer: AssignCustomizer): ObjectChain<T & TSource>;
387
+ /**
388
+ * @see _.assignWith
389
+ */
390
+ assignWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2>;
391
+ /**
392
+ * @see _.assignWith
393
+ */
394
+ assignWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3>;
395
+ /**
396
+ * @see _.assignWith
397
+ */
398
+ assignWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
399
+ /**
400
+ * @see _.assignWith
401
+ */
402
+ assignWith(): ObjectChain<T>;
403
+ /**
404
+ * @see _.assignWith
405
+ */
406
+ assignWith(...otherArgs: any[]): ObjectChain<any>;
407
+ }
408
+ interface LoDashStatic {
409
+ /**
410
+ * Creates an array of elements corresponding to the given keys, or indexes, of collection. Keys may be
411
+ * specified as individual arguments or as arrays of keys.
412
+ *
413
+ * @param object The object to iterate over.
414
+ * @param props The property names or indexes of elements to pick, specified individually or in arrays.
415
+ * @return Returns the new array of picked elements.
416
+ */
417
+ at<T>(object: Dictionary<T> | NumericDictionary<T> | null | undefined, ...props: PropertyPath[]): T[];
418
+ /**
419
+ * @see _.at
420
+ */
421
+ at<T extends object>(object: T | null | undefined, ...props: Array<Many<keyof T>>): Array<T[keyof T]>;
422
+ }
423
+ interface Object<T> {
424
+ /**
425
+ * @see _.at
426
+ */
427
+ at(...props: Array<Many<keyof T>>): Collection<T[keyof T]>;
428
+ }
429
+ interface Collection<T> {
430
+ /**
431
+ * @see _.at
432
+ */
433
+ at(...props: PropertyPath[]): Collection<T>;
434
+ }
435
+ interface ObjectChain<T> {
436
+ /**
437
+ * @see _.at
438
+ */
439
+ at(...props: Array<Many<keyof T>>): CollectionChain<T[keyof T]>;
440
+ }
441
+ interface CollectionChain<T> {
442
+ /**
443
+ * @see _.at
444
+ */
445
+ at(...props: PropertyPath[]): CollectionChain<T>;
446
+ }
447
+ interface LoDashStatic {
448
+ /**
449
+ * Creates an object that inherits from the given prototype object. If a properties object is provided its own
450
+ * enumerable properties are assigned to the created object.
451
+ *
452
+ * @param prototype The object to inherit from.
453
+ * @param properties The properties to assign to the object.
454
+ * @return Returns the new object.
455
+ */
456
+ create<T extends object, U extends object>(prototype: T, properties?: U): T & U;
457
+ }
458
+ interface Object<T> {
459
+ /**
460
+ * @see _.create
461
+ */
462
+ create<U extends object>(properties?: U): Object<T & U>;
463
+ }
464
+ interface ObjectChain<T> {
465
+ /**
466
+ * @see _.create
467
+ */
468
+ create<U extends object>(properties?: U): ObjectChain<T & U>;
469
+ }
470
+ interface LoDashStatic {
471
+ /**
472
+ * Assigns own enumerable properties of source object(s) to the destination object for all destination
473
+ * properties that resolve to undefined. Once a property is set, additional values of the same property are
474
+ * ignored.
475
+ *
476
+ * Note: This method mutates object.
477
+ *
478
+ * @param object The destination object.
479
+ * @param sources The source objects.
480
+ * @return The destination object.
481
+ */
482
+ defaults<TObject, TSource>(object: TObject, source: TSource): NonNullable<TSource & TObject>;
483
+ /**
484
+ * @see _.defaults
485
+ */
486
+ defaults<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): NonNullable<TSource2 & TSource1 & TObject>;
487
+ /**
488
+ * @see _.defaults
489
+ */
490
+ defaults<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): NonNullable<TSource3 & TSource2 & TSource1 & TObject>;
491
+ /**
492
+ * @see _.defaults
493
+ */
494
+ defaults<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): NonNullable<TSource4 & TSource3 & TSource2 & TSource1 & TObject>;
495
+ /**
496
+ * @see _.defaults
497
+ */
498
+ defaults<TObject>(object: TObject): NonNullable<TObject>;
499
+ /**
500
+ * @see _.defaults
501
+ */
502
+ defaults(object: any, ...sources: any[]): any;
503
+ }
504
+ interface Object<T> {
505
+ /**
506
+ * @see _.defaults
507
+ */
508
+ defaults<TSource>(source: TSource): Object<NonNullable<TSource & T>>;
509
+ /**
510
+ * @see _.defaults
511
+ */
512
+ defaults<TSource1, TSource2>(source1: TSource1, source2: TSource2): Object<NonNullable<TSource2 & TSource1 & T>>;
513
+ /**
514
+ * @see _.defaults
515
+ */
516
+ defaults<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): Object<NonNullable<TSource3 & TSource2 & TSource1 & T>>;
517
+ /**
518
+ * @see _.defaults
519
+ */
520
+ defaults<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): Object<NonNullable<TSource4 & TSource3 & TSource2 & TSource1 & T>>;
521
+ /**
522
+ * @see _.defaults
523
+ */
524
+ defaults(): Object<NonNullable<T>>;
525
+ /**
526
+ * @see _.defaults
527
+ */
528
+ defaults(...sources: any[]): Object<any>;
529
+ }
530
+ interface ObjectChain<T> {
531
+ /**
532
+ * @see _.defaults
533
+ */
534
+ defaults<TSource>(source: TSource): ObjectChain<NonNullable<TSource & T>>;
535
+ /**
536
+ * @see _.defaults
537
+ */
538
+ defaults<TSource1, TSource2>(source1: TSource1, source2: TSource2): ObjectChain<NonNullable<TSource2 & TSource1 & T>>;
539
+ /**
540
+ * @see _.defaults
541
+ */
542
+ defaults<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): ObjectChain<NonNullable<TSource3 & TSource2 & TSource1 & T>>;
543
+ /**
544
+ * @see _.defaults
545
+ */
546
+ defaults<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): ObjectChain<NonNullable<TSource4 & TSource3 & TSource2 & TSource1 & T>>;
547
+ /**
548
+ * @see _.defaults
549
+ */
550
+ defaults(): ObjectChain<NonNullable<T>>;
551
+ /**
552
+ * @see _.defaults
553
+ */
554
+ defaults(...sources: any[]): ObjectChain<any>;
555
+ }
556
+ interface LoDashStatic {
557
+ /**
558
+ * This method is like _.defaults except that it recursively assigns default properties.
559
+ * @param object The destination object.
560
+ * @param sources The source objects.
561
+ * @return Returns object.
562
+ */
563
+ defaultsDeep(object: any, ...sources: any[]): any;
564
+ }
565
+ interface Object<T> {
566
+ /**
567
+ * @see _.defaultsDeep
568
+ */
569
+ defaultsDeep(...sources: any[]): Object<any>;
570
+ }
571
+ interface ObjectChain<T> {
572
+ /**
573
+ * @see _.defaultsDeep
574
+ */
575
+ defaultsDeep(...sources: any[]): ObjectChain<any>;
576
+ }
577
+ interface LoDashStatic {
578
+ /**
579
+ * @see _.toPairs
580
+ */
581
+ entries<T>(object?: Dictionary<T> | NumericDictionary<T>): Array<[string, T]>;
582
+ /**
583
+ * @see _.entries
584
+ */
585
+ entries(object?: object): Array<[string, any]>;
586
+ }
587
+ interface Object<T> {
588
+ /**
589
+ * @see _.entries
590
+ */
591
+ entries(): Collection<[string, T[keyof T]]>;
592
+ }
593
+ interface LoDashImplicitWrapper<TValue> {
594
+ /**
595
+ * @see _.entries
596
+ */
597
+ entries(): Collection<[string, any]>;
598
+ }
599
+ interface ObjectChain<T> {
600
+ /**
601
+ * @see _.entries
602
+ */
603
+ entries(): CollectionChain<[string, T[keyof T]]>;
604
+ }
605
+ interface LoDashExplicitWrapper<TValue> {
606
+ /**
607
+ * @see _.entries
608
+ */
609
+ entries(): CollectionChain<[string, any]>;
610
+ }
611
+ interface LoDashStatic {
612
+ /**
613
+ * @see _.entriesIn
614
+ */
615
+ entriesIn<T>(object?: Dictionary<T> | NumericDictionary<T>): Array<[string, T]>;
616
+ /**
617
+ * @see _.entriesIn
618
+ */
619
+ entriesIn(object?: object): Array<[string, any]>;
620
+ }
621
+ interface Object<T> {
622
+ /**
623
+ * @see _.entriesIn
624
+ */
625
+ entriesIn(): Collection<[string, T[keyof T]]>;
626
+ }
627
+ interface LoDashImplicitWrapper<TValue> {
628
+ /**
629
+ * @see _.entriesIn
630
+ */
631
+ entriesIn(): Collection<[string, any]>;
632
+ }
633
+ interface ObjectChain<T> {
634
+ /**
635
+ * @see _.entriesIn
636
+ */
637
+ entriesIn(): CollectionChain<[string, T[keyof T]]>;
638
+ }
639
+ interface LoDashExplicitWrapper<TValue> {
640
+ /**
641
+ * @see _.entriesIn
642
+ */
643
+ entriesIn(): CollectionChain<[string, any]>;
644
+ }
645
+ interface LoDashStatic {
646
+ /**
647
+ * @see _.extend
648
+ */
649
+ extend<TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
650
+ /**
651
+ * @see _.extend
652
+ */
653
+ extend<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): TObject & TSource1 & TSource2;
654
+ /**
655
+ * @see _.extend
656
+ */
657
+ extend<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): TObject & TSource1 & TSource2 & TSource3;
658
+ /**
659
+ * @see _.extend
660
+ */
661
+ extend<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): TObject & TSource1 & TSource2 & TSource3 & TSource4;
662
+ /**
663
+ * @see _.extend
664
+ */
665
+ extend<TObject>(object: TObject): TObject;
666
+ /**
667
+ * @see _.extend
668
+ */
669
+ extend<TResult>(object: any, ...otherArgs: any[]): TResult;
670
+ }
671
+ interface Object<T> {
672
+ /**
673
+ * @see _.extend
674
+ */
675
+ extend<TSource>(source: TSource): Object<T & TSource>;
676
+ /**
677
+ * @see _.extend
678
+ */
679
+ extend<TSource1, TSource2>(source1: TSource1, source2: TSource2): Object<T & TSource1 & TSource2>;
680
+ /**
681
+ * @see _.extend
682
+ */
683
+ extend<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): Object<T & TSource1 & TSource2 & TSource3>;
684
+ /**
685
+ * @see _.extend
686
+ */
687
+ extend<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
688
+ /**
689
+ * @see _.extend
690
+ */
691
+ extend(): Object<T>;
692
+ /**
693
+ * @see _.extend
694
+ */
695
+ extend(...otherArgs: any[]): Object<any>;
696
+ }
697
+ interface ObjectChain<T> {
698
+ /**
699
+ * @see _.extend
700
+ */
701
+ extend<TSource>(source: TSource): ObjectChain<T & TSource>;
702
+ /**
703
+ * @see _.extend
704
+ */
705
+ extend<TSource1, TSource2>(source1: TSource1, source2: TSource2): ObjectChain<T & TSource1 & TSource2>;
706
+ /**
707
+ * @see _.extend
708
+ */
709
+ extend<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): ObjectChain<T & TSource1 & TSource2 & TSource3>;
710
+ /**
711
+ * @see _.extend
712
+ */
713
+ extend<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
714
+ /**
715
+ * @see _.extend
716
+ */
717
+ extend(): ObjectChain<T>;
718
+ /**
719
+ * @see _.extend
720
+ */
721
+ extend(...otherArgs: any[]): ObjectChain<any>;
722
+ }
723
+ interface LoDashStatic {
724
+ /**
725
+ * @see _.extendWith
726
+ */
727
+ extendWith<TObject, TSource>(object: TObject, source: TSource, customizer: AssignCustomizer): TObject & TSource;
728
+ /**
729
+ * @see _.extendWith
730
+ */
731
+ extendWith<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2, customizer: AssignCustomizer): TObject & TSource1 & TSource2;
732
+ /**
733
+ * @see _.extendWith
734
+ */
735
+ extendWith<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3;
736
+ /**
737
+ * @see _.extendWith
738
+ */
739
+ extendWith<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3 & TSource4;
740
+ /**
741
+ * @see _.extendWith
742
+ */
743
+ extendWith<TObject>(object: TObject): TObject;
744
+ /**
745
+ * @see _.extendWith
746
+ */
747
+ extendWith<TResult>(object: any, ...otherArgs: any[]): TResult;
748
+ }
749
+ interface Object<T> {
750
+ /**
751
+ * @see _.extendWith
752
+ */
753
+ extendWith<TSource>(source: TSource, customizer: AssignCustomizer): Object<T & TSource>;
754
+ /**
755
+ * @see _.extendWith
756
+ */
757
+ extendWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): Object<T & TSource1 & TSource2>;
758
+ /**
759
+ * @see _.extendWith
760
+ */
761
+ extendWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3>;
762
+ /**
763
+ * @see _.extendWith
764
+ */
765
+ extendWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
766
+ /**
767
+ * @see _.extendWith
768
+ */
769
+ extendWith(): Object<T>;
770
+ /**
771
+ * @see _.extendWith
772
+ */
773
+ extendWith(...otherArgs: any[]): Object<any>;
774
+ }
775
+ interface ObjectChain<T> {
776
+ /**
777
+ * @see _.extendWith
778
+ */
779
+ extendWith<TSource>(source: TSource, customizer: AssignCustomizer): ObjectChain<T & TSource>;
780
+ /**
781
+ * @see _.extendWith
782
+ */
783
+ extendWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2>;
784
+ /**
785
+ * @see _.extendWith
786
+ */
787
+ extendWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3>;
788
+ /**
789
+ * @see _.extendWith
790
+ */
791
+ extendWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
792
+ /**
793
+ * @see _.extendWith
794
+ */
795
+ extendWith(): ObjectChain<T>;
796
+ /**
797
+ * @see _.extendWith
798
+ */
799
+ extendWith(...otherArgs: any[]): ObjectChain<any>;
800
+ }
801
+ interface LoDashStatic {
802
+ /**
803
+ * This method is like _.find except that it returns the key of the first element predicate returns truthy for
804
+ * instead of the element itself.
805
+ *
806
+ * @param object The object to search.
807
+ * @param predicate The function invoked per iteration.
808
+ * @return Returns the key of the matched element, else undefined.
809
+ */
810
+ findKey<T>(object: T | null | undefined, predicate?: ObjectIteratee<T>): string | undefined;
811
+ }
812
+ interface LoDashImplicitWrapper<TValue> {
813
+ /**
814
+ * @see _.findKey
815
+ */
816
+ findKey(predicate?: ObjectIteratee<TValue>): string | undefined;
817
+ }
818
+ interface LoDashExplicitWrapper<TValue> {
819
+ /**
820
+ * @see _.findKey
821
+ */
822
+ findKey(predicate?: ObjectIteratee<TValue>): StringNullableChain;
823
+ }
824
+ interface LoDashStatic {
825
+ /**
826
+ * This method is like _.findKey except that it iterates over elements of a collection in the opposite order.
827
+ *
828
+ * @param object The object to search.
829
+ * @param predicate The function invoked per iteration.
830
+ * @return Returns the key of the matched element, else undefined.
831
+ */
832
+ findLastKey<T>(object: T | null | undefined, predicate?: ObjectIteratee<T>): string | undefined;
833
+ }
834
+ interface LoDashImplicitWrapper<TValue> {
835
+ /**
836
+ * @see _.findLastKey
837
+ */
838
+ findLastKey(predicate?: ObjectIteratee<TValue>): string | undefined;
839
+ }
840
+ interface LoDashExplicitWrapper<TValue> {
841
+ /**
842
+ * @see _.findLastKey
843
+ */
844
+ findLastKey(predicate?: ObjectIteratee<TValue>): StringNullableChain;
845
+ }
846
+ interface LoDashStatic {
847
+ /**
848
+ * Iterates over own and inherited enumerable properties of an object invoking iteratee for each property. The
849
+ * iteratee is invoked with three arguments: (value, key, object). Iteratee functions may
850
+ * exit iteration early by explicitly returning false.
851
+ *
852
+ * @param object The object to iterate over.
853
+ * @param iteratee The function invoked per iteration.
854
+ * @return Returns object.
855
+ */
856
+ forIn<T>(object: T, iteratee?: ObjectIterator<T, any>): T;
857
+ /**
858
+ * @see _.forIn
859
+ */
860
+ forIn<T>(object: T | null | undefined, iteratee?: ObjectIterator<T, any>): T | null | undefined;
861
+ }
862
+ interface LoDashImplicitWrapper<TValue> {
863
+ /**
864
+ * @see _.forIn
865
+ */
866
+ forIn(iteratee?: ObjectIterator<TValue, any>): this;
867
+ }
868
+ interface LoDashExplicitWrapper<TValue> {
869
+ /**
870
+ * @see _.forIn
871
+ */
872
+ forIn(iteratee?: ObjectIterator<TValue, any>): this;
873
+ }
874
+ interface LoDashStatic {
875
+ /**
876
+ * This method is like _.forIn except that it iterates over properties of object in the opposite order.
877
+ *
878
+ * @param object The object to iterate over.
879
+ * @param iteratee The function invoked per iteration.
880
+ * @return Returns object.
881
+ */
882
+ forInRight<T>(object: T, iteratee?: ObjectIterator<T, any>): T;
883
+ /**
884
+ * @see _.forInRight
885
+ */
886
+ forInRight<T>(object: T | null | undefined, iteratee?: ObjectIterator<T, any>): T | null | undefined;
887
+ }
888
+ interface LoDashImplicitWrapper<TValue> {
889
+ /**
890
+ * @see _.forInRight
891
+ */
892
+ forInRight(iteratee?: ObjectIterator<TValue, any>): this;
893
+ }
894
+ interface LoDashExplicitWrapper<TValue> {
895
+ /**
896
+ * @see _.forInRight
897
+ */
898
+ forInRight(iteratee?: ObjectIterator<TValue, any>): this;
899
+ }
900
+ interface LoDashStatic {
901
+ /**
902
+ * Iterates over own enumerable properties of an object invoking iteratee for each property. The iteratee is
903
+ * invoked with three arguments: (value, key, object). Iteratee functions may exit
904
+ * iteration early by explicitly returning false.
905
+ *
906
+ * @param object The object to iterate over.
907
+ * @param iteratee The function invoked per iteration.
908
+ * @return Returns object.
909
+ */
910
+ forOwn<T>(object: T, iteratee?: ObjectIterator<T, any>): T;
911
+ /**
912
+ * @see _.forOwn
913
+ */
914
+ forOwn<T>(object: T | null | undefined, iteratee?: ObjectIterator<T, any>): T | null | undefined;
915
+ }
916
+ interface LoDashImplicitWrapper<TValue> {
917
+ /**
918
+ * @see _.forOwn
919
+ */
920
+ forOwn(iteratee?: ObjectIterator<TValue, any>): this;
921
+ }
922
+ interface LoDashExplicitWrapper<TValue> {
923
+ /**
924
+ * @see _.forOwn
925
+ */
926
+ forOwn(iteratee?: ObjectIterator<TValue, any>): this;
927
+ }
928
+ interface LoDashStatic {
929
+ /**
930
+ * This method is like _.forOwn except that it iterates over properties of object in the opposite order.
931
+ *
932
+ * @param object The object to iterate over.
933
+ * @param iteratee The function invoked per iteration.
934
+ * @return Returns object.
935
+ */
936
+ forOwnRight<T>(object: T, iteratee?: ObjectIterator<T, any>): T;
937
+ /**
938
+ * @see _.forOwnRight
939
+ */
940
+ forOwnRight<T>(object: T | null | undefined, iteratee?: ObjectIterator<T, any>): T | null | undefined;
941
+ }
942
+ interface LoDashImplicitWrapper<TValue> {
943
+ /**
944
+ * @see _.forOwnRight
945
+ */
946
+ forOwnRight(iteratee?: ObjectIterator<TValue, any>): this;
947
+ }
948
+ interface LoDashExplicitWrapper<TValue> {
949
+ /**
950
+ * @see _.forOwnRight
951
+ */
952
+ forOwnRight(iteratee?: ObjectIterator<TValue, any>): this;
953
+ }
954
+ interface LoDashStatic {
955
+ /**
956
+ * Creates an array of function property names from own enumerable properties
957
+ * of `object`.
958
+ *
959
+ * @category Object
960
+ * @param object The object to inspect.
961
+ * @returns Returns the new array of property names.
962
+ * @example
963
+ *
964
+ * function Foo() {
965
+ * this.a = _.constant('a');
966
+ * this.b = _.constant('b');
967
+ * }
968
+ *
969
+ * Foo.prototype.c = _.constant('c');
970
+ *
971
+ * _.functions(new Foo);
972
+ * // => ['a', 'b']
973
+ */
974
+ functions(object: any): string[];
975
+ }
976
+ interface LoDashImplicitWrapper<TValue> {
977
+ /**
978
+ * @see _.functions
979
+ */
980
+ functions(): Collection<string>;
981
+ }
982
+ interface LoDashExplicitWrapper<TValue> {
983
+ /**
984
+ * @see _.functions
985
+ */
986
+ functions(): CollectionChain<string>;
987
+ }
988
+ interface LoDashStatic {
989
+ /**
990
+ * Creates an array of function property names from own and inherited
991
+ * enumerable properties of `object`.
992
+ *
993
+ * @category Object
994
+ * @param object The object to inspect.
995
+ * @returns Returns the new array of property names.
996
+ * @example
997
+ *
998
+ * function Foo() {
999
+ * this.a = _.constant('a');
1000
+ * this.b = _.constant('b');
1001
+ * }
1002
+ *
1003
+ * Foo.prototype.c = _.constant('c');
1004
+ *
1005
+ * _.functionsIn(new Foo);
1006
+ * // => ['a', 'b', 'c']
1007
+ */
1008
+ functionsIn<T extends {}>(object: any): string[];
1009
+ }
1010
+ interface LoDashImplicitWrapper<TValue> {
1011
+ /**
1012
+ * @see _.functionsIn
1013
+ */
1014
+ functionsIn(): Collection<string>;
1015
+ }
1016
+ interface LoDashExplicitWrapper<TValue> {
1017
+ /**
1018
+ * @see _.functionsIn
1019
+ */
1020
+ functionsIn(): CollectionChain<string>;
1021
+ }
1022
+ interface LoDashStatic {
1023
+ /**
1024
+ * Gets the property value at path of object. If the resolved value is undefined the defaultValue is used
1025
+ * in its place.
1026
+ *
1027
+ * @param object The object to query.
1028
+ * @param path The path of the property to get.
1029
+ * @param defaultValue The value returned if the resolved value is undefined.
1030
+ * @return Returns the resolved value.
1031
+ */
1032
+ get<TObject extends object, TKey extends keyof TObject>(object: TObject, path: TKey | [TKey]): TObject[TKey];
1033
+ /**
1034
+ * @see _.get
1035
+ */
1036
+ get<TObject extends object, TKey extends keyof TObject>(object: TObject | null | undefined, path: TKey | [TKey]): TObject[TKey] | undefined;
1037
+ /**
1038
+ * @see _.get
1039
+ */
1040
+ get<TObject extends object, TKey extends keyof TObject, TDefault>(object: TObject | null | undefined, path: TKey | [TKey], defaultValue: TDefault): Exclude<TObject[TKey], undefined> | TDefault;
1041
+ /**
1042
+ * @see _.get
1043
+ */
1044
+ get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1]>(object: TObject, path: [TKey1, TKey2]): TObject[TKey1][TKey2];
1045
+ /**
1046
+ * @see _.get
1047
+ */
1048
+ get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1]>(object: TObject | null | undefined, path: [TKey1, TKey2]): TObject[TKey1][TKey2] | undefined;
1049
+ /**
1050
+ * @see _.get
1051
+ */
1052
+ 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;
1053
+ /**
1054
+ * @see _.get
1055
+ */
1056
+ 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];
1057
+ /**
1058
+ * @see _.get
1059
+ */
1060
+ 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;
1061
+ /**
1062
+ * @see _.get
1063
+ */
1064
+ 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;
1065
+ /**
1066
+ * @see _.get
1067
+ */
1068
+ 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];
1069
+ /**
1070
+ * @see _.get
1071
+ */
1072
+ 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;
1073
+ /**
1074
+ * @see _.get
1075
+ */
1076
+ 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;
1077
+ /**
1078
+ * @see _.get
1079
+ */
1080
+ get<T>(object: NumericDictionary<T>, path: number): T;
1081
+ /**
1082
+ * @see _.get
1083
+ */
1084
+ get<T>(object: NumericDictionary<T> | null | undefined, path: number): T | undefined;
1085
+ /**
1086
+ * @see _.get
1087
+ */
1088
+ get<T, TDefault>(object: NumericDictionary<T> | null | undefined, path: number, defaultValue: TDefault): T | TDefault;
1089
+ /**
1090
+ * @see _.get
1091
+ */
1092
+ get<TDefault>(object: null | undefined, path: PropertyPath, defaultValue: TDefault): TDefault;
1093
+ /**
1094
+ * @see _.get
1095
+ */
1096
+ get(object: null | undefined, path: PropertyPath): undefined;
1097
+ /**
1098
+ * @see _.get
1099
+ */
1100
+ get(object: any, path: PropertyPath, defaultValue?: any): any;
1101
+ }
1102
+ interface String {
1103
+ /**
1104
+ * @see _.get
1105
+ */
1106
+ get(path: number | number[]): string;
1107
+ /**
1108
+ * @see _.get
1109
+ */
1110
+ get(path: number | number[], defaultValue: string): string;
1111
+ }
1112
+ interface Object<T> {
1113
+ /**
1114
+ * @see _.get
1115
+ */
1116
+ get<TKey extends keyof T>(path: TKey | [TKey]): T[TKey];
1117
+ /**
1118
+ * @see _.get
1119
+ */
1120
+ get<TKey extends keyof T, TDefault>(path: TKey | [TKey], defaultValue: TDefault): Exclude<T[TKey], undefined> | TDefault;
1121
+ /**
1122
+ * @see _.get
1123
+ */
1124
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1]>(path: [TKey1, TKey2]): T[TKey1][TKey2];
1125
+ /**
1126
+ * @see _.get
1127
+ */
1128
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TDefault>(path: [TKey1, TKey2], defaultValue: TDefault): Exclude<T[TKey1][TKey2], undefined> | TDefault;
1129
+ /**
1130
+ * @see _.get
1131
+ */
1132
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2]>(path: [TKey1, TKey2, TKey3]): T[TKey1][TKey2][TKey3];
1133
+ /**
1134
+ * @see _.get
1135
+ */
1136
+ 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;
1137
+ /**
1138
+ * @see _.get
1139
+ */
1140
+ 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];
1141
+ /**
1142
+ * @see _.get
1143
+ */
1144
+ 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;
1145
+ /**
1146
+ * @see _.get
1147
+ */
1148
+ get(path: PropertyPath, defaultValue?: any): any;
1149
+ }
1150
+ interface Collection<T> {
1151
+ /**
1152
+ * @see _.get
1153
+ */
1154
+ get(path: number): T;
1155
+ /**
1156
+ * @see _.get
1157
+ */
1158
+ get<TDefault>(path: number, defaultValue: TDefault): T | TDefault;
1159
+ }
1160
+ interface StringChain {
1161
+ /**
1162
+ * @see _.get
1163
+ */
1164
+ get(path: number | number[]): StringChain;
1165
+ /**
1166
+ * @see _.get
1167
+ */
1168
+ get(path: number | number[], defaultValue: string): StringChain;
1169
+ }
1170
+ interface StringNullableChain {
1171
+ /**
1172
+ * @see _.get
1173
+ */
1174
+ get(path: number | number[]): StringNullableChain;
1175
+ /**
1176
+ * @see _.get
1177
+ */
1178
+ get(path: number | number[], defaultValue: string): StringChain;
1179
+ }
1180
+ interface ObjectChain<T> {
1181
+ /**
1182
+ * @see _.get
1183
+ */
1184
+ get<TKey extends keyof T>(path: TKey | [TKey]): ExpChain<T[TKey]>;
1185
+ /**
1186
+ * @see _.get
1187
+ */
1188
+ 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[]>;
1189
+ /**
1190
+ * @see _.get
1191
+ */
1192
+ get<TKey extends keyof T, TDefault>(path: TKey | [TKey], defaultValue: TDefault): ExpChain<Exclude<T[TKey], undefined> | TDefault>;
1193
+ /**
1194
+ * @see _.get
1195
+ */
1196
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1]>(path: [TKey1, TKey2]): ExpChain<T[TKey1][TKey2]>;
1197
+ /**
1198
+ * @see _.get
1199
+ */
1200
+ 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[]>;
1201
+ /**
1202
+ * @see _.get
1203
+ */
1204
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TDefault>(path: [TKey1, TKey2], defaultValue: TDefault): ExpChain<Exclude<T[TKey1][TKey2], undefined> | TDefault>;
1205
+ /**
1206
+ * @see _.get
1207
+ */
1208
+ 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]>;
1209
+ /**
1210
+ * @see _.get
1211
+ */
1212
+ 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[]>;
1213
+ /**
1214
+ * @see _.get
1215
+ */
1216
+ 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>;
1217
+ /**
1218
+ * @see _.get
1219
+ */
1220
+ 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]>;
1221
+ /**
1222
+ * @see _.get
1223
+ */
1224
+ 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[]>;
1225
+ /**
1226
+ * @see _.get
1227
+ */
1228
+ 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>;
1229
+ /**
1230
+ * @see _.get
1231
+ */
1232
+ get(path: PropertyPath, defaultValue?: any): LoDashExplicitWrapper<any>;
1233
+ }
1234
+ interface CollectionChain<T> {
1235
+ /**
1236
+ * @see _.get
1237
+ */
1238
+ get(path: number): ExpChain<T>;
1239
+ /**
1240
+ * @see _.get
1241
+ */
1242
+ get<TDefault>(path: number, defaultValue: TDefault): ExpChain<T | TDefault>;
1243
+ }
1244
+ interface LoDashStatic {
1245
+ /**
1246
+ * Checks if `path` is a direct property of `object`.
1247
+ *
1248
+ * @category Object
1249
+ * @param object The object to query.
1250
+ * @param path The path to check.
1251
+ * @returns Returns `true` if `path` exists, else `false`.
1252
+ * @example
1253
+ *
1254
+ * var object = { 'a': { 'b': { 'c': 3 } } };
1255
+ * var other = _.create({ 'a': _.create({ 'b': _.create({ 'c': 3 }) }) });
1256
+ *
1257
+ * _.has(object, 'a');
1258
+ * // => true
1259
+ *
1260
+ * _.has(object, 'a.b.c');
1261
+ * // => true
1262
+ *
1263
+ * _.has(object, ['a', 'b', 'c']);
1264
+ * // => true
1265
+ *
1266
+ * _.has(other, 'a');
1267
+ * // => false
1268
+ */
1269
+ has<T>(object: T, path: PropertyPath): boolean;
1270
+ }
1271
+ interface LoDashImplicitWrapper<TValue> {
1272
+ /**
1273
+ * @see _.has
1274
+ */
1275
+ has(path: PropertyPath): boolean;
1276
+ }
1277
+ interface LoDashExplicitWrapper<TValue> {
1278
+ /**
1279
+ * @see _.has
1280
+ */
1281
+ has(path: PropertyPath): PrimitiveChain<boolean>;
1282
+ }
1283
+ interface LoDashStatic {
1284
+ /**
1285
+ * Checks if `path` is a direct or inherited property of `object`.
1286
+ *
1287
+ * @category Object
1288
+ * @param object The object to query.
1289
+ * @param path The path to check.
1290
+ * @returns Returns `true` if `path` exists, else `false`.
1291
+ * @example
1292
+ *
1293
+ * var object = _.create({ 'a': _.create({ 'b': _.create({ 'c': 3 }) }) });
1294
+ *
1295
+ * _.hasIn(object, 'a');
1296
+ * // => true
1297
+ *
1298
+ * _.hasIn(object, 'a.b.c');
1299
+ * // => true
1300
+ *
1301
+ * _.hasIn(object, ['a', 'b', 'c']);
1302
+ * // => true
1303
+ *
1304
+ * _.hasIn(object, 'b');
1305
+ * // => false
1306
+ */
1307
+ hasIn<T>(object: T, path: PropertyPath): boolean;
1308
+ }
1309
+ interface LoDashImplicitWrapper<TValue> {
1310
+ /**
1311
+ * @see _.hasIn
1312
+ */
1313
+ hasIn(path: PropertyPath): boolean;
1314
+ }
1315
+ interface LoDashExplicitWrapper<TValue> {
1316
+ /**
1317
+ * @see _.hasIn
1318
+ */
1319
+ hasIn(path: PropertyPath): PrimitiveChain<boolean>;
1320
+ }
1321
+ interface LoDashStatic {
1322
+ /**
1323
+ * Creates an object composed of the inverted keys and values of object. If object contains duplicate values,
1324
+ * subsequent values overwrite property assignments of previous values unless multiValue is true.
1325
+ *
1326
+ * @param object The object to invert.
1327
+ * @param multiValue Allow multiple values per key.
1328
+ * @return Returns the new inverted object.
1329
+ */
1330
+ invert(object: object): Dictionary<string>;
1331
+ }
1332
+ interface LoDashImplicitWrapper<TValue> {
1333
+ /**
1334
+ * @see _.invert
1335
+ */
1336
+ invert(): Object<Dictionary<string>>;
1337
+ }
1338
+ interface LoDashExplicitWrapper<TValue> {
1339
+ /**
1340
+ * @see _.invert
1341
+ */
1342
+ invert(): ObjectChain<Dictionary<string>>;
1343
+ }
1344
+ interface LoDashStatic {
1345
+ /**
1346
+ * This method is like _.invert except that the inverted object is generated from the results of running each
1347
+ * element of object through iteratee. The corresponding inverted value of each inverted key is an array of
1348
+ * keys responsible for generating the inverted value. The iteratee is invoked with one argument: (value).
1349
+ *
1350
+ * @param object The object to invert.
1351
+ * @param interatee The iteratee invoked per element.
1352
+ * @return Returns the new inverted object.
1353
+ */
1354
+ invertBy<T>(object: Dictionary<T> | NumericDictionary<T> | null | undefined, interatee?: ValueIteratee<T>): Dictionary<string[]>;
1355
+ /**
1356
+ * @see _.invertBy
1357
+ */
1358
+ invertBy<T extends object>(object: T | null | undefined, interatee?: ValueIteratee<T[keyof T]>): Dictionary<string[]>;
1359
+ }
1360
+ interface String {
1361
+ /**
1362
+ * @see _.invertBy
1363
+ */
1364
+ invertBy(iteratee?: ValueIteratee<string>): Object<Dictionary<string[]>>;
1365
+ }
1366
+ interface Collection<T> {
1367
+ /**
1368
+ * @see _.invertBy
1369
+ */
1370
+ invertBy(iteratee?: ValueIteratee<T>): Object<Dictionary<string[]>>;
1371
+ }
1372
+ interface Object<T> {
1373
+ /**
1374
+ * @see _.invertBy
1375
+ */
1376
+ invertBy(iteratee?: ValueIteratee<T[keyof T]>): Object<Dictionary<string[]>>;
1377
+ }
1378
+ interface StringChain {
1379
+ /**
1380
+ * @see _.invertBy
1381
+ */
1382
+ invertBy(iteratee?: ValueIteratee<string>): ObjectChain<Dictionary<string[]>>;
1383
+ }
1384
+ interface StringNullableChain {
1385
+ /**
1386
+ * @see _.invertBy
1387
+ */
1388
+ invertBy(iteratee?: ValueIteratee<string>): ObjectChain<Dictionary<string[]>>;
1389
+ }
1390
+ interface CollectionChain<T> {
1391
+ /**
1392
+ * @see _.invertBy
1393
+ */
1394
+ invertBy(iteratee?: ValueIteratee<T>): ObjectChain<Dictionary<string[]>>;
1395
+ }
1396
+ interface ObjectChain<T> {
1397
+ /**
1398
+ * @see _.invertBy
1399
+ */
1400
+ invertBy(iteratee?: ValueIteratee<T[keyof T]>): ObjectChain<Dictionary<string[]>>;
1401
+ }
1402
+ interface LoDashStatic {
1403
+ /**
1404
+ * Invokes the method at path of object.
1405
+ * @param object The object to query.
1406
+ * @param path The path of the method to invoke.
1407
+ * @param args The arguments to invoke the method with.
1408
+ */
1409
+ invoke(object: any, path: PropertyPath, ...args: any[]): any;
1410
+ }
1411
+ interface LoDashImplicitWrapper<TValue> {
1412
+ /**
1413
+ * @see _.invoke
1414
+ */
1415
+ invoke(path: PropertyPath, ...args: any[]): any;
1416
+ }
1417
+ interface LoDashExplicitWrapper<TValue> {
1418
+ /**
1419
+ * @see _.invoke
1420
+ */
1421
+ invoke(path: PropertyPath, ...args: any[]): LoDashExplicitWrapper<any>;
1422
+ }
1423
+ interface LoDashStatic {
1424
+ /**
1425
+ * Creates an array of the own enumerable property names of object.
1426
+ *
1427
+ * Note: Non-object values are coerced to objects. See the ES spec for more details.
1428
+ *
1429
+ * @param object The object to query.
1430
+ * @return Returns the array of property names.
1431
+ */
1432
+ keys(object?: any): string[];
1433
+ }
1434
+ interface LoDashImplicitWrapper<TValue> {
1435
+ /**
1436
+ * @see _.keys
1437
+ */
1438
+ keys(): Collection<string>;
1439
+ }
1440
+ interface LoDashExplicitWrapper<TValue> {
1441
+ /**
1442
+ * @see _.keys
1443
+ */
1444
+ keys(): CollectionChain<string>;
1445
+ }
1446
+ interface LoDashStatic {
1447
+ /**
1448
+ * Creates an array of the own and inherited enumerable property names of object.
1449
+ *
1450
+ * Note: Non-object values are coerced to objects.
1451
+ *
1452
+ * @param object The object to query.
1453
+ * @return An array of property names.
1454
+ */
1455
+ keysIn(object?: any): string[];
1456
+ }
1457
+ interface LoDashImplicitWrapper<TValue> {
1458
+ /**
1459
+ * @see _.keysIn
1460
+ */
1461
+ keysIn(): Collection<string>;
1462
+ }
1463
+ interface LoDashExplicitWrapper<TValue> {
1464
+ /**
1465
+ * @see _.keysIn
1466
+ */
1467
+ keysIn(): CollectionChain<string>;
1468
+ }
1469
+ interface LoDashStatic {
1470
+ /**
1471
+ * The opposite of _.mapValues; this method creates an object with the same values as object and keys generated
1472
+ * by running each own enumerable property of object through iteratee.
1473
+ *
1474
+ * @param object The object to iterate over.
1475
+ * @param iteratee The function invoked per iteration.
1476
+ * @return Returns the new mapped object.
1477
+ */
1478
+ mapKeys<T>(object: List<T> | null | undefined, iteratee?: ListIteratee<T>): Dictionary<T>;
1479
+ /**
1480
+ * @see _.mapKeys
1481
+ */
1482
+ mapKeys<T extends object>(object: T | null | undefined, iteratee?: ObjectIteratee<T>): Dictionary<T[keyof T]>;
1483
+ }
1484
+ interface Collection<T> {
1485
+ /**
1486
+ * @see _.mapKeys
1487
+ */
1488
+ mapKeys(iteratee?: ListIteratee<T>): Object<Dictionary<T>>;
1489
+ }
1490
+ interface Object<T> {
1491
+ /**
1492
+ * @see _.mapKeys
1493
+ */
1494
+ mapKeys(iteratee?: ObjectIteratee<T>): Object<Dictionary<T[keyof T]>>;
1495
+ }
1496
+ interface CollectionChain<T> {
1497
+ /**
1498
+ * @see _.mapKeys
1499
+ */
1500
+ mapKeys(iteratee?: ListIteratee<T>): ObjectChain<Dictionary<T>>;
1501
+ }
1502
+ interface ObjectChain<T> {
1503
+ /**
1504
+ * @see _.mapKeys
1505
+ */
1506
+ mapKeys(iteratee?: ObjectIteratee<T>): ObjectChain<Dictionary<T[keyof T]>>;
1507
+ }
1508
+ interface LoDashStatic {
1509
+ /**
1510
+ * Creates an object with the same keys as object and values generated by running each own
1511
+ * enumerable property of object through iteratee. The iteratee function is
1512
+ * invoked with three arguments: (value, key, object).
1513
+ *
1514
+ * @param object The object to iterate over.
1515
+ * @param iteratee The function invoked per iteration.
1516
+ * @return Returns the new mapped object.
1517
+ */
1518
+ mapValues<TResult>(obj: string | null | undefined, callback: StringIterator<TResult>): NumericDictionary<TResult>;
1519
+ /**
1520
+ * @see _.mapValues
1521
+ */
1522
+ mapValues<T extends object, TResult>(obj: T | null | undefined, callback: ObjectIterator<T, TResult>): { [P in keyof T]: TResult };
1523
+ /**
1524
+ * @see _.mapValues
1525
+ */
1526
+ mapValues<T>(obj: Dictionary<T> | NumericDictionary<T> | null | undefined, iteratee: object): Dictionary<boolean>;
1527
+ /**
1528
+ * @see _.mapValues
1529
+ */
1530
+ mapValues<T extends object>(obj: T | null | undefined, iteratee: object): { [P in keyof T]: boolean };
1531
+ /**
1532
+ * @see _.mapValues
1533
+ */
1534
+ mapValues<T, TKey extends keyof T>(obj: Dictionary<T> | NumericDictionary<T> | null | undefined, iteratee: TKey): Dictionary<T[TKey]>;
1535
+ /**
1536
+ * @see _.mapValues
1537
+ */
1538
+ mapValues<T>(obj: Dictionary<T> | NumericDictionary<T> | null | undefined, iteratee: string): Dictionary<any>;
1539
+ /**
1540
+ * @see _.mapValues
1541
+ */
1542
+ mapValues<T extends object>(obj: T | null | undefined, iteratee: string): { [P in keyof T]: any };
1543
+ /**
1544
+ * @see _.mapValues
1545
+ */
1546
+ mapValues(obj: string | null | undefined): NumericDictionary<string>;
1547
+ /**
1548
+ * @see _.mapValues
1549
+ */
1550
+ mapValues<T>(obj: Dictionary<T> | NumericDictionary<T> | null | undefined): Dictionary<T>;
1551
+ /**
1552
+ * @see _.mapValues
1553
+ */
1554
+ mapValues<T extends object>(obj: T): T;
1555
+ /**
1556
+ * @see _.mapValues
1557
+ */
1558
+ mapValues<T extends object>(obj: T | null | undefined): PartialObject<T>;
1559
+ }
1560
+ interface String {
1561
+ /**
1562
+ * @see _.mapValues
1563
+ */
1564
+ mapValues<TResult>(callback: StringIterator<TResult>): Object<NumericDictionary<TResult>>;
1565
+ /**
1566
+ * @see _.mapValues
1567
+ */
1568
+ mapValues(): Object<NumericDictionary<string>>;
1569
+ }
1570
+ interface Collection<T> {
1571
+ /**
1572
+ * @see _.mapValues
1573
+ */
1574
+ mapValues<TResult>(callback: DictionaryIterator<T, TResult>): Object<Dictionary<TResult>>;
1575
+ /**
1576
+ * @see _.mapValues
1577
+ */
1578
+ mapValues<TKey extends keyof T>(iteratee: TKey): Object<Dictionary<T[TKey]>>;
1579
+ /**
1580
+ * @see _.mapValues
1581
+ */
1582
+ mapValues(iteratee: object): Object<Dictionary<boolean>>;
1583
+ /**
1584
+ * @see _.mapValues
1585
+ */
1586
+ mapValues(iteratee: string): Object<Dictionary<any>>;
1587
+ /**
1588
+ * @see _.mapValues
1589
+ */
1590
+ mapValues(): Object<Dictionary<T>>;
1591
+ }
1592
+ interface Object<T> {
1593
+ /**
1594
+ * @see _.mapValues
1595
+ */
1596
+ mapValues<TResult>(callback: ObjectIterator<T, TResult>): Object<{ [P in keyof T]: TResult }>;
1597
+ /**
1598
+ * @see _.mapValues
1599
+ */
1600
+ mapValues<TResult>(callback: DictionaryIterator<T[keyof T], TResult>): Object<Dictionary<TResult>>;
1601
+ /**
1602
+ * @see _.mapValues
1603
+ */
1604
+ mapValues(iteratee: object): Object<{ [P in keyof T]: boolean }>;
1605
+ /**
1606
+ * @see _.mapValues
1607
+ */
1608
+ mapValues<TKey extends keyof T[keyof T]>(iteratee: TKey): Object<Dictionary<T[keyof T][TKey]>>;
1609
+ /**
1610
+ * @see _.mapValues
1611
+ */
1612
+ mapValues(iteratee: string): Object<{ [P in keyof T]: any }>;
1613
+ /**
1614
+ * @see _.mapValues
1615
+ */
1616
+ mapValues(): Object<T>;
1617
+ }
1618
+ interface StringChain {
1619
+ /**
1620
+ * @see _.mapValues
1621
+ */
1622
+ mapValues<TResult>(callback: StringIterator<TResult>): ObjectChain<NumericDictionary<TResult>>;
1623
+ /**
1624
+ * @see _.mapValues
1625
+ */
1626
+ mapValues(): ObjectChain<NumericDictionary<string>>;
1627
+ }
1628
+ interface StringNullableChain {
1629
+ /**
1630
+ * @see _.mapValues
1631
+ */
1632
+ mapValues<TResult>(callback: StringIterator<TResult>): ObjectChain<NumericDictionary<TResult>>;
1633
+ /**
1634
+ * @see _.mapValues
1635
+ */
1636
+ mapValues(): ObjectChain<NumericDictionary<string>>;
1637
+ }
1638
+ interface CollectionChain<T> {
1639
+ /**
1640
+ * @see _.mapValues
1641
+ */
1642
+ mapValues<TResult>(callback: DictionaryIterator<T, TResult>): ObjectChain<Dictionary<TResult>>;
1643
+ /**
1644
+ * @see _.mapValues
1645
+ */
1646
+ mapValues<TKey extends keyof T>(iteratee: TKey): ObjectChain<Dictionary<T[TKey]>>;
1647
+ /**
1648
+ * @see _.mapValues
1649
+ */
1650
+ mapValues(iteratee: object): ObjectChain<Dictionary<boolean>>;
1651
+ /**
1652
+ * @see _.mapValues
1653
+ */
1654
+ mapValues(iteratee: string): ObjectChain<Dictionary<any>>;
1655
+ /**
1656
+ * @see _.mapValues
1657
+ */
1658
+ mapValues(): ObjectChain<Dictionary<T>>;
1659
+ }
1660
+ interface ObjectChain<T> {
1661
+ /**
1662
+ * @see _.mapValues
1663
+ */
1664
+ mapValues<TResult>(callback: ObjectIterator<T, TResult>): ObjectChain<{ [P in keyof T]: TResult }>;
1665
+ /**
1666
+ * @see _.mapValues
1667
+ */
1668
+ mapValues<TResult>(callback: DictionaryIterator<T[keyof T], TResult>): ObjectChain<Dictionary<TResult>>;
1669
+ /**
1670
+ * @see _.mapValues
1671
+ */
1672
+ mapValues(iteratee: object): ObjectChain<{ [P in keyof T]: boolean }>;
1673
+ /**
1674
+ * @see _.mapValues
1675
+ */
1676
+ mapValues<TKey extends keyof T[keyof T]>(iteratee: TKey): ObjectChain<Dictionary<T[keyof T][TKey]>>;
1677
+ /**
1678
+ * @see _.mapValues
1679
+ */
1680
+ mapValues(iteratee: string): ObjectChain<{ [P in keyof T]: any }>;
1681
+ /**
1682
+ * @see _.mapValues
1683
+ */
1684
+ mapValues(): ObjectChain<T>;
1685
+ }
1686
+ interface LoDashStatic {
1687
+ /**
1688
+ * Recursively merges own and inherited enumerable properties of source
1689
+ * objects into the destination object, skipping source properties that resolve
1690
+ * to `undefined`. Array and plain object properties are merged recursively.
1691
+ * Other objects and value types are overridden by assignment. Source objects
1692
+ * are applied from left to right. Subsequent sources overwrite property
1693
+ * assignments of previous sources.
1694
+ *
1695
+ * **Note:** This method mutates `object`.
1696
+ *
1697
+ * @category Object
1698
+ * @param object The destination object.
1699
+ * @param [sources] The source objects.
1700
+ * @returns Returns `object`.
1701
+ * @example
1702
+ *
1703
+ * var users = {
1704
+ * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]
1705
+ * };
1706
+ *
1707
+ * var ages = {
1708
+ * 'data': [{ 'age': 36 }, { 'age': 40 }]
1709
+ * };
1710
+ *
1711
+ * _.merge(users, ages);
1712
+ * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }
1713
+ */
1714
+ merge<TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
1715
+ /**
1716
+ * @see _.merge
1717
+ */
1718
+ merge<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): TObject & TSource1 & TSource2;
1719
+ /**
1720
+ * @see _.merge
1721
+ */
1722
+ merge<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): TObject & TSource1 & TSource2 & TSource3;
1723
+ /**
1724
+ * @see _.merge
1725
+ */
1726
+ merge<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): TObject & TSource1 & TSource2 & TSource3 & TSource4;
1727
+ /**
1728
+ * @see _.merge
1729
+ */
1730
+ merge(object: any, ...otherArgs: any[]): any;
1731
+ }
1732
+ interface Object<T> {
1733
+ /**
1734
+ * @see _.merge
1735
+ */
1736
+ merge<TSource>(source: TSource): Object<T & TSource>;
1737
+ /**
1738
+ * @see _.merge
1739
+ */
1740
+ merge<TSource1, TSource2>(source1: TSource1, source2: TSource2): Object<T & TSource1 & TSource2>;
1741
+ /**
1742
+ * @see _.merge
1743
+ */
1744
+ merge<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): Object<T & TSource1 & TSource2 & TSource3>;
1745
+ /**
1746
+ * @see _.merge
1747
+ */
1748
+ merge<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
1749
+ /**
1750
+ * @see _.merge
1751
+ */
1752
+ merge(...otherArgs: any[]): Object<any>;
1753
+ }
1754
+ interface ObjectChain<T> {
1755
+ /**
1756
+ * @see _.merge
1757
+ */
1758
+ merge<TSource>(source: TSource): ObjectChain<T & TSource>;
1759
+ /**
1760
+ * @see _.merge
1761
+ */
1762
+ merge<TSource1, TSource2>(source1: TSource1, source2: TSource2): ObjectChain<T & TSource1 & TSource2>;
1763
+ /**
1764
+ * @see _.merge
1765
+ */
1766
+ merge<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): ObjectChain<T & TSource1 & TSource2 & TSource3>;
1767
+ /**
1768
+ * @see _.merge
1769
+ */
1770
+ merge<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
1771
+ /**
1772
+ * @see _.merge
1773
+ */
1774
+ merge(...otherArgs: any[]): ObjectChain<any>;
1775
+ }
1776
+ type MergeWithCustomizer = { bivariantHack(value: any, srcValue: any, key: string, object: any, source: any): any; }["bivariantHack"];
1777
+ // TODO: Probably should just put all these methods on Object and forget about it.
1778
+ // oh, except for Collection<any> I GUESS
1779
+ interface LoDashStatic {
1780
+ /**
1781
+ * This method is like `_.merge` except that it accepts `customizer` which
1782
+ * is invoked to produce the merged values of the destination and source
1783
+ * properties. If `customizer` returns `undefined` merging is handled by the
1784
+ * method instead. The `customizer` is invoked with seven arguments:
1785
+ * (objValue, srcValue, key, object, source, stack).
1786
+ *
1787
+ * @category Object
1788
+ * @param object The destination object.
1789
+ * @param sources The source objects.
1790
+ * @param customizer The function to customize assigned values.
1791
+ * @returns Returns `object`.
1792
+ * @example
1793
+ *
1794
+ * function customizer(objValue, srcValue) {
1795
+ * if (_.isArray(objValue)) {
1796
+ * return objValue.concat(srcValue);
1797
+ * }
1798
+ * }
1799
+ *
1800
+ * var object = {
1801
+ * 'fruits': ['apple'],
1802
+ * 'vegetables': ['beet']
1803
+ * };
1804
+ *
1805
+ * var other = {
1806
+ * 'fruits': ['banana'],
1807
+ * 'vegetables': ['carrot']
1808
+ * };
1809
+ *
1810
+ * _.mergeWith(object, other, customizer);
1811
+ * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }
1812
+ */
1813
+ mergeWith<TObject, TSource>(object: TObject, source: TSource, customizer: MergeWithCustomizer): TObject & TSource;
1814
+ /**
1815
+ * @see _.mergeWith
1816
+ */
1817
+ mergeWith<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2, customizer: MergeWithCustomizer): TObject & TSource1 & TSource2;
1818
+ /**
1819
+ * @see _.mergeWith
1820
+ */
1821
+ mergeWith<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, customizer: MergeWithCustomizer): TObject & TSource1 & TSource2 & TSource3;
1822
+ /**
1823
+ * @see _.mergeWith
1824
+ */
1825
+ mergeWith<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: MergeWithCustomizer): TObject & TSource1 & TSource2 & TSource3 & TSource4;
1826
+ /**
1827
+ * @see _.mergeWith
1828
+ */
1829
+ mergeWith(object: any, ...otherArgs: any[]): any;
1830
+ }
1831
+ interface Object<T> {
1832
+ /**
1833
+ * @see _.mergeWith
1834
+ */
1835
+ mergeWith<TSource>(source: TSource, customizer: MergeWithCustomizer): Object<T & TSource>;
1836
+ /**
1837
+ * @see _.mergeWith
1838
+ */
1839
+ mergeWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: MergeWithCustomizer): Object<T & TSource1 & TSource2>;
1840
+ /**
1841
+ * @see _.mergeWith
1842
+ */
1843
+ mergeWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: MergeWithCustomizer): Object<T & TSource1 & TSource2 & TSource3>;
1844
+ /**
1845
+ * @see _.mergeWith
1846
+ */
1847
+ mergeWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: MergeWithCustomizer): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
1848
+ /**
1849
+ * @see _.mergeWith
1850
+ */
1851
+ mergeWith(...otherArgs: any[]): Object<any>;
1852
+ }
1853
+ interface ObjectChain<T> {
1854
+ /**
1855
+ * @see _.mergeWith
1856
+ */
1857
+ mergeWith<TSource>(source: TSource, customizer: MergeWithCustomizer): ObjectChain<T & TSource>;
1858
+ /**
1859
+ * @see _.mergeWith
1860
+ */
1861
+ mergeWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: MergeWithCustomizer): ObjectChain<T & TSource1 & TSource2>;
1862
+ /**
1863
+ * @see _.mergeWith
1864
+ */
1865
+ mergeWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: MergeWithCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3>;
1866
+ /**
1867
+ * @see _.mergeWith
1868
+ */
1869
+ mergeWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: MergeWithCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
1870
+ /**
1871
+ * @see _.mergeWith
1872
+ */
1873
+ mergeWith(...otherArgs: any[]): ObjectChain<any>;
1874
+ }
1875
+ interface LoDashStatic {
1876
+ /**
1877
+ * The opposite of `_.pick`; this method creates an object composed of the
1878
+ * own and inherited enumerable properties of `object` that are not omitted.
1879
+ *
1880
+ * @category Object
1881
+ * @param object The source object.
1882
+ * @param [paths] The property names to omit, specified
1883
+ * individually or in arrays..
1884
+ * @returns Returns the new object.
1885
+ * @example
1886
+ *
1887
+ * var object = { 'a': 1, 'b': '2', 'c': 3 };
1888
+ *
1889
+ * _.omit(object, ['a', 'c']);
1890
+ * // => { 'b': '2' }
1891
+ */
1892
+ omit<T extends object, K extends PropertyName[]>(
1893
+ object: T | null | undefined,
1894
+ ...paths: K
1895
+ ): Pick<T, Exclude<keyof T, K[number]>>;
1896
+ /**
1897
+ * @see _.omit
1898
+ */
1899
+ omit<T extends object, K extends keyof T>(object: T | null | undefined, ...paths: Array<Many<K>>): Omit<T, K>;
1900
+ /**
1901
+ * @see _.omit
1902
+ */
1903
+ omit<T extends object>(object: T | null | undefined, ...paths: Array<Many<PropertyName>>): PartialObject<T>;
1904
+ }
1905
+ interface Collection<T> {
1906
+ /**
1907
+ * @see _.omit
1908
+ */
1909
+ omit(...paths: Array<Many<PropertyName>>): Collection<T>;
1910
+ }
1911
+ interface Object<T> {
1912
+ /**
1913
+ * @see _.omit
1914
+ */
1915
+ omit<K extends keyof T>(...paths: Array<Many<K>>): Object<Omit<T, K>>;
1916
+ /**
1917
+ * @see _.omit
1918
+ */
1919
+ omit(...paths: Array<Many<PropertyName | IterateeShorthand<T>>>): Object<PartialObject<T>>;
1920
+ }
1921
+ interface CollectionChain<T> {
1922
+ /**
1923
+ * @see _.omit
1924
+ */
1925
+ omit(...paths: Array<Many<PropertyName>>): CollectionChain<T>;
1926
+ }
1927
+ interface ObjectChain<T> {
1928
+ /**
1929
+ * @see _.omit
1930
+ */
1931
+ omit<K extends keyof T>(...paths: Array<Many<K>>): ObjectChain<Omit<T, K>>;
1932
+ /**
1933
+ * @see _.omit
1934
+ */
1935
+ omit(...paths: Array<Many<PropertyName>>): ObjectChain<PartialObject<T>>;
1936
+ }
1937
+ interface LoDashStatic {
1938
+ /**
1939
+ * The opposite of `_.pickBy`; this method creates an object composed of the
1940
+ * own and inherited enumerable properties of `object` that `predicate`
1941
+ * doesn't return truthy for.
1942
+ *
1943
+ * @category Object
1944
+ * @param object The source object.
1945
+ * @param [predicate=_.identity] The function invoked per property.
1946
+ * @returns Returns the new object.
1947
+ * @example
1948
+ *
1949
+ * var object = { 'a': 1, 'b': '2', 'c': 3 };
1950
+ *
1951
+ * _.omitBy(object, _.isNumber);
1952
+ * // => { 'b': '2' }
1953
+ */
1954
+ omitBy<T>(object: Dictionary<T> | null | undefined, predicate?: ValueKeyIteratee<T>): Dictionary<T>;
1955
+ /**
1956
+ * @see _.omitBy
1957
+ */
1958
+ omitBy<T>(object: NumericDictionary<T> | null | undefined, predicate?: ValueKeyIteratee<T>): NumericDictionary<T>;
1959
+ /**
1960
+ * @see _.omitBy
1961
+ */
1962
+ omitBy<T extends object>(object: T | null | undefined, predicate: ValueKeyIteratee<T[keyof T]>): PartialObject<T>;
1963
+ }
1964
+ interface Collection<T> {
1965
+ /**
1966
+ * @see _.omitBy
1967
+ */
1968
+ omitBy(predicate?: ValueKeyIteratee<T>): Object<Dictionary<T>>;
1969
+ }
1970
+ interface Object<T> {
1971
+ /**
1972
+ * @see _.omitBy
1973
+ */
1974
+ omitBy(predicate: ValueKeyIteratee<T[keyof T]>): Object<PartialObject<T>>;
1975
+ }
1976
+ interface CollectionChain<T> {
1977
+ /**
1978
+ * @see _.omitBy
1979
+ */
1980
+ omitBy(predicate?: ValueKeyIteratee<T>): ObjectChain<Dictionary<T>>;
1981
+ }
1982
+ interface ObjectChain<T> {
1983
+ /**
1984
+ * @see _.omitBy
1985
+ */
1986
+ omitBy(predicate: ValueKeyIteratee<T[keyof T]>): ObjectChain<PartialObject<T>>;
1987
+ }
1988
+ interface LoDashStatic {
1989
+ /**
1990
+ * Creates an object composed of the picked `object` properties.
1991
+ *
1992
+ * @category Object
1993
+ * @param object The source object.
1994
+ * @param [props] The property names to pick, specified
1995
+ * individually or in arrays.
1996
+ * @returns Returns the new object.
1997
+ * @example
1998
+ *
1999
+ * var object = { 'a': 1, 'b': '2', 'c': 3 };
2000
+ *
2001
+ * _.pick(object, ['a', 'c']);
2002
+ * // => { 'a': 1, 'c': 3 }
2003
+ */
2004
+ pick<T extends object, U extends keyof T>(object: T, ...props: Array<Many<U>>): Pick<T, U>;
2005
+ /**
2006
+ * @see _.pick
2007
+ */
2008
+ pick<T>(object: T | null | undefined, ...props: PropertyPath[]): PartialObject<T>;
2009
+ }
2010
+ interface Object<T> {
2011
+ /**
2012
+ * @see _.pick
2013
+ */
2014
+ pick<U extends keyof T>(...props: Array<Many<U>>): Object<Pick<T, U>>;
2015
+ /**
2016
+ * @see _.pick
2017
+ */
2018
+ pick(...props: PropertyPath[]): Object<PartialObject<T>>;
2019
+ }
2020
+ interface ObjectChain<T> {
2021
+ /**
2022
+ * @see _.pick
2023
+ */
2024
+ pick<U extends keyof T>(...props: Array<Many<U>>): ObjectChain<Pick<T, U>>;
2025
+ /**
2026
+ * @see _.pick
2027
+ */
2028
+ pick(...props: PropertyPath[]): ObjectChain<PartialObject<T>>;
2029
+ }
2030
+ interface LoDashStatic {
2031
+ /**
2032
+ * Creates an object composed of the `object` properties `predicate` returns
2033
+ * truthy for. The predicate is invoked with two arguments: (value, key).
2034
+ *
2035
+ * @category Object
2036
+ * @param object The source object.
2037
+ * @param [predicate=_.identity] The function invoked per property.
2038
+ * @returns Returns the new object.
2039
+ * @example
2040
+ *
2041
+ * var object = { 'a': 1, 'b': '2', 'c': 3 };
2042
+ *
2043
+ * _.pickBy(object, _.isNumber);
2044
+ * // => { 'a': 1, 'c': 3 }
2045
+ */
2046
+ pickBy<T, S extends T>(object: Dictionary<T> | null | undefined, predicate: ValueKeyIterateeTypeGuard<T, S>): Dictionary<S>;
2047
+ /**
2048
+ * @see _.pickBy
2049
+ */
2050
+ pickBy<T, S extends T>(object: NumericDictionary<T> | null | undefined, predicate: ValueKeyIterateeTypeGuard<T, S>): NumericDictionary<S>;
2051
+ /**
2052
+ * @see _.pickBy
2053
+ */
2054
+ pickBy<T>(object: Dictionary<T> | null | undefined, predicate?: ValueKeyIteratee<T>): Dictionary<T>;
2055
+ /**
2056
+ * @see _.pickBy
2057
+ */
2058
+ pickBy<T>(object: NumericDictionary<T> | null | undefined, predicate?: ValueKeyIteratee<T>): NumericDictionary<T>;
2059
+ /**
2060
+ * @see _.pickBy
2061
+ */
2062
+ pickBy<T extends object>(object: T | null | undefined, predicate?: ValueKeyIteratee<T[keyof T]>): PartialObject<T>;
2063
+ }
2064
+ interface Collection<T> {
2065
+ /**
2066
+ * @see _.pickBy
2067
+ */
2068
+ pickBy<S extends T>(predicate: ValueKeyIterateeTypeGuard<T, S>): Object<Dictionary<S>>;
2069
+ /**
2070
+ * @see _.pickBy
2071
+ */
2072
+ pickBy(predicate?: ValueKeyIteratee<T>): Object<Dictionary<T>>;
2073
+ }
2074
+ interface Object<T> {
2075
+ /**
2076
+ * @see _.pickBy
2077
+ */
2078
+ pickBy<S extends T[keyof T]>(predicate: ValueKeyIterateeTypeGuard<T[keyof T], S>): Object<NumericDictionary<unknown> extends T ? NumericDictionary<S> : Dictionary<S>>;
2079
+ /**
2080
+ * @see _.pickBy
2081
+ */
2082
+ pickBy(predicate?: ValueKeyIteratee<T[keyof T]>): Object<PartialObject<T>>;
2083
+ }
2084
+ interface CollectionChain<T> {
2085
+ /**
2086
+ * @see _.pickBy
2087
+ */
2088
+ pickBy<S extends T>(predicate: ValueKeyIterateeTypeGuard<T, S>): ObjectChain<Dictionary<S>>;
2089
+ /**
2090
+ * @see _.pickBy
2091
+ */
2092
+ pickBy(predicate?: ValueKeyIteratee<T>): ObjectChain<Dictionary<T>>;
2093
+ }
2094
+ interface ObjectChain<T> {
2095
+ /**
2096
+ * @see _.pickBy
2097
+ */
2098
+ pickBy<S extends T[keyof T]>(predicate: ValueKeyIterateeTypeGuard<T[keyof T], S>): ObjectChain<NumericDictionary<unknown> extends T ? NumericDictionary<S> : Dictionary<S>>;
2099
+ /**
2100
+ * @see _.pickBy
2101
+ */
2102
+ pickBy(predicate?: ValueKeyIteratee<T[keyof T]>): ObjectChain<PartialObject<T>>;
2103
+ }
2104
+ interface LoDashStatic {
2105
+ /**
2106
+ * This method is like _.get except that if the resolved value is a function it’s invoked with the this binding
2107
+ * of its parent object and its result is returned.
2108
+ *
2109
+ * @param object The object to query.
2110
+ * @param path The path of the property to resolve.
2111
+ * @param defaultValue The value returned if the resolved value is undefined.
2112
+ * @return Returns the resolved value.
2113
+ */
2114
+ result<TResult>(object: any, path: PropertyPath, defaultValue?: TResult | ((...args: any[]) => TResult)): TResult;
2115
+ }
2116
+ interface LoDashImplicitWrapper<TValue> {
2117
+ /**
2118
+ * @see _.result
2119
+ */
2120
+ result<TResult>(path: PropertyPath, defaultValue?: TResult | ((...args: any[]) => TResult)): TResult;
2121
+ }
2122
+ interface LoDashExplicitWrapper<TValue> {
2123
+ /**
2124
+ * @see _.result
2125
+ */
2126
+ result<TResult>(path: PropertyPath, defaultValue?: TResult | ((...args: any[]) => TResult)): ExpChain<TResult>;
2127
+ }
2128
+ interface LoDashStatic {
2129
+ /**
2130
+ * Sets the value at path of object. If a portion of path doesn’t exist it’s created. Arrays are created for
2131
+ * missing index properties while objects are created for all other missing properties. Use _.setWith to
2132
+ * customize path creation.
2133
+ *
2134
+ * @param object The object to modify.
2135
+ * @param path The path of the property to set.
2136
+ * @param value The value to set.
2137
+ * @return Returns object.
2138
+ */
2139
+ set<T extends object>(object: T, path: PropertyPath, value: any): T;
2140
+ /**
2141
+ * @see _.set
2142
+ */
2143
+ set<TResult>(object: object, path: PropertyPath, value: any): TResult;
2144
+ }
2145
+ interface LoDashImplicitWrapper<TValue> {
2146
+ /**
2147
+ * @see _.set
2148
+ */
2149
+ set(path: PropertyPath, value: any): this;
2150
+ /**
2151
+ * @see _.set
2152
+ */
2153
+ set<TResult>(path: PropertyPath, value: any): ImpChain<TResult>;
2154
+ }
2155
+ interface LoDashExplicitWrapper<TValue> {
2156
+ /**
2157
+ * @see _.set
2158
+ */
2159
+ set(path: PropertyPath, value: any): this;
2160
+ /**
2161
+ * @see _.set
2162
+ */
2163
+ set<TResult>(path: PropertyPath, value: any): ExpChain<TResult>;
2164
+ }
2165
+ type SetWithCustomizer<T> = (nsValue: any, key: string, nsObject: T) => any;
2166
+ interface LoDashStatic {
2167
+ /**
2168
+ * This method is like _.set except that it accepts customizer which is invoked to produce the objects of
2169
+ * path. If customizer returns undefined path creation is handled by the method instead. The customizer is
2170
+ * invoked with three arguments: (nsValue, key, nsObject).
2171
+ *
2172
+ * @param object The object to modify.
2173
+ * @param path The path of the property to set.
2174
+ * @param value The value to set.
2175
+ * @param customizer The function to customize assigned values.
2176
+ * @return Returns object.
2177
+ */
2178
+ setWith<T extends object>(object: T, path: PropertyPath, value: any, customizer?: SetWithCustomizer<T>): T;
2179
+ /**
2180
+ * @see _.setWith
2181
+ */
2182
+ setWith<T extends object, TResult>(object: T, path: PropertyPath, value: any, customizer?: SetWithCustomizer<T>): TResult;
2183
+ }
2184
+ interface LoDashImplicitWrapper<TValue> {
2185
+ /**
2186
+ * @see _.setWith
2187
+ */
2188
+ setWith(path: PropertyPath, value: any, customizer?: SetWithCustomizer<TValue>): this;
2189
+ /**
2190
+ * @see _.setWith
2191
+ */
2192
+ setWith<TResult>(path: PropertyPath, value: any, customizer?: SetWithCustomizer<TValue>): ImpChain<TResult>;
2193
+ }
2194
+ interface LoDashExplicitWrapper<TValue> {
2195
+ /**
2196
+ * @see _.setWith
2197
+ */
2198
+ setWith(path: PropertyPath, value: any, customizer?: SetWithCustomizer<TValue>): this;
2199
+ /**
2200
+ * @see _.setWith
2201
+ */
2202
+ setWith<TResult>(path: PropertyPath, value: any, customizer?: SetWithCustomizer<TValue>): ExpChain<TResult>;
2203
+ }
2204
+ interface LoDashStatic {
2205
+ /**
2206
+ * Creates an array of own enumerable key-value pairs for object.
2207
+ *
2208
+ * @param object The object to query.
2209
+ * @return Returns the new array of key-value pairs.
2210
+ */
2211
+ toPairs<T>(object?: Dictionary<T> | NumericDictionary<T>): Array<[string, T]>;
2212
+ /**
2213
+ * @see _.toPairs
2214
+ */
2215
+ toPairs(object?: object): Array<[string, any]>;
2216
+ }
2217
+ interface LoDashImplicitWrapper<TValue> {
2218
+ /**
2219
+ * @see _.toPairs
2220
+ */
2221
+ toPairs(): Collection<[string, TValue extends Dictionary<infer U> ? U : TValue extends NumericDictionary<infer V> ? V : any]>;
2222
+ }
2223
+ interface LoDashExplicitWrapper<TValue> {
2224
+ /**
2225
+ * @see _.toPairs
2226
+ */
2227
+ toPairs(): CollectionChain<[string, TValue extends Dictionary<infer U> ? U : TValue extends NumericDictionary<infer V> ? V : any]>;
2228
+ }
2229
+ interface LoDashStatic {
2230
+ /**
2231
+ * Creates an array of own and inherited enumerable key-value pairs for object.
2232
+ *
2233
+ * @param object The object to query.
2234
+ * @return Returns the new array of key-value pairs.
2235
+ */
2236
+ toPairsIn<T>(object?: Dictionary<T> | NumericDictionary<T>): Array<[string, T]>;
2237
+ /**
2238
+ * @see _.toPairsIn
2239
+ */
2240
+ toPairsIn(object?: object): Array<[string, any]>;
2241
+ }
2242
+ interface LoDashImplicitWrapper<TValue> {
2243
+ /**
2244
+ * @see _.toPairsIn
2245
+ */
2246
+ toPairsIn(): Collection<[string, TValue extends Dictionary<infer U> ? U : TValue extends NumericDictionary<infer V> ? V : any]>;
2247
+ }
2248
+ interface LoDashExplicitWrapper<TValue> {
2249
+ /**
2250
+ * @see _.toPairsIn
2251
+ */
2252
+ toPairsIn(): CollectionChain<[string, TValue extends Dictionary<infer U> ? U : TValue extends NumericDictionary<infer V> ? V : any]>;
2253
+ }
2254
+ interface LoDashStatic {
2255
+ /**
2256
+ * An alternative to _.reduce; this method transforms object to a new accumulator object which is the result of
2257
+ * running each of its own enumerable properties through iteratee, with each invocation potentially mutating
2258
+ * the accumulator object. The iteratee is invoked with four arguments: (accumulator,
2259
+ * value, key, object). Iteratee functions may exit iteration early by explicitly returning false.
2260
+ *
2261
+ * @param object The object to iterate over.
2262
+ * @param iteratee The function invoked per iteration.
2263
+ * @param accumulator The custom accumulator value.
2264
+ * @return Returns the accumulated value.
2265
+ */
2266
+ transform<T, TResult>(object: ReadonlyArray<T>, iteratee: MemoVoidArrayIterator<T, TResult>, accumulator?: TResult): TResult;
2267
+ /**
2268
+ * @see _.transform
2269
+ */
2270
+ transform<T, TResult>(object: Dictionary<T>, iteratee: MemoVoidDictionaryIterator<T, string, TResult>, accumulator?: TResult): TResult;
2271
+ /**
2272
+ * @see _.transform
2273
+ */
2274
+ transform<T extends object, TResult>(object: T, iteratee: MemoVoidDictionaryIterator<T[keyof T], keyof T, TResult>, accumulator?: TResult): TResult;
2275
+ /**
2276
+ * @see _.transform
2277
+ */
2278
+ transform(object: any[]): any[];
2279
+ /**
2280
+ * @see _.transform
2281
+ */
2282
+ transform(object: object): Dictionary<any>;
2283
+ }
2284
+ interface Collection<T> {
2285
+ /**
2286
+ * @see _.transform
2287
+ */
2288
+ transform<TResult>(iteratee: MemoVoidArrayIterator<T, TResult>, accumulator?: TResult): ImpChain<TResult>;
2289
+ /**
2290
+ * @see _.transform
2291
+ */
2292
+ transform(): Collection<any>;
2293
+ }
2294
+ interface Object<T> {
2295
+ /**
2296
+ * @see _.transform
2297
+ */
2298
+ transform<TResult>(iteratee: MemoVoidDictionaryIterator<T[keyof T], string, TResult>, accumulator?: TResult): ImpChain<TResult>;
2299
+ /**
2300
+ * @see _.transform
2301
+ */
2302
+ transform<TResult>(iteratee: MemoVoidDictionaryIterator<T[keyof T], keyof T, TResult>, accumulator?: TResult): ImpChain<TResult>;
2303
+ /**
2304
+ * @see _.transform
2305
+ */
2306
+ transform(): ImpChain<T extends Dictionary<unknown> ? Dictionary<any> : T>;
2307
+ }
2308
+ interface CollectionChain<T> {
2309
+ /**
2310
+ * @see _.transform
2311
+ */
2312
+ transform<TResult>(iteratee: MemoVoidArrayIterator<T, TResult>, accumulator?: TResult): ExpChain<TResult>;
2313
+ /**
2314
+ * @see _.transform
2315
+ */
2316
+ transform(): CollectionChain<any>;
2317
+ }
2318
+ interface ObjectChain<T> {
2319
+ /**
2320
+ * @see _.transform
2321
+ */
2322
+ transform<TResult>(iteratee: MemoVoidDictionaryIterator<T[keyof T], string, TResult>, accumulator?: TResult): ExpChain<TResult>;
2323
+ /**
2324
+ * @see _.transform
2325
+ */
2326
+ transform<TResult>(iteratee: MemoVoidDictionaryIterator<T[keyof T], keyof T, TResult>, accumulator?: TResult): ExpChain<TResult>;
2327
+ /**
2328
+ * @see _.transform
2329
+ */
2330
+ transform(): ExpChain<T extends Dictionary<unknown> ? Dictionary<any> : T>;
2331
+ }
2332
+ interface LoDashStatic {
2333
+ /**
2334
+ * Removes the property at path of object.
2335
+ *
2336
+ * Note: This method mutates object.
2337
+ *
2338
+ * @param object The object to modify.
2339
+ * @param path The path of the property to unset.
2340
+ * @return Returns true if the property is deleted, else false.
2341
+ */
2342
+ unset(object: any, path: PropertyPath): boolean;
2343
+ }
2344
+ interface LoDashImplicitWrapper<TValue> {
2345
+ /**
2346
+ * @see _.unset
2347
+ */
2348
+ unset(path: PropertyPath): Primitive<boolean>;
2349
+ }
2350
+ interface LoDashExplicitWrapper<TValue> {
2351
+ /**
2352
+ * @see _.unset
2353
+ */
2354
+ unset(path: PropertyPath): PrimitiveChain<boolean>;
2355
+ }
2356
+ interface LoDashStatic {
2357
+ /**
2358
+ * This method is like _.set except that accepts updater to produce the value to set. Use _.updateWith to
2359
+ * customize path creation. The updater is invoked with one argument: (value).
2360
+ *
2361
+ * @param object The object to modify.
2362
+ * @param path The path of the property to set.
2363
+ * @param updater The function to produce the updated value.
2364
+ * @return Returns object.
2365
+ */
2366
+ update(object: object, path: PropertyPath, updater: (value: any) => any): any;
2367
+ }
2368
+ interface LoDashImplicitWrapper<TValue> {
2369
+ /**
2370
+ * @see _.update
2371
+ */
2372
+ update(path: PropertyPath, updater: (value: any) => any): Object<any>;
2373
+ }
2374
+ interface LoDashExplicitWrapper<TValue> {
2375
+ /**
2376
+ * @see _.update
2377
+ */
2378
+ update(path: PropertyPath, updater: (value: any) => any): ObjectChain<any>;
2379
+ }
2380
+ interface LoDashStatic {
2381
+ /**
2382
+ * This method is like `_.update` except that it accepts `customizer` which is
2383
+ * invoked to produce the objects of `path`. If `customizer` returns `undefined`
2384
+ * path creation is handled by the method instead. The `customizer` is invoked
2385
+ * with three arguments: (nsValue, key, nsObject).
2386
+ *
2387
+ * **Note:** This method mutates `object`.
2388
+ *
2389
+ * @since 4.6.0
2390
+ * @category Object
2391
+ * @param object The object to modify.
2392
+ * @param path The path of the property to set.
2393
+ * @param updater The function to produce the updated value.
2394
+ * @param [customizer] The function to customize assigned values.
2395
+ * @returns Returns `object`.
2396
+ * @example
2397
+ *
2398
+ * var object = {};
2399
+ *
2400
+ * _.updateWith(object, '[0][1]', _.constant('a'), Object);
2401
+ * // => { '0': { '1': 'a' } }
2402
+ */
2403
+ updateWith<T extends object>(object: T, path: PropertyPath, updater: (oldValue: any) => any, customizer?: SetWithCustomizer<T>): T;
2404
+ /**
2405
+ * @see _.updateWith
2406
+ */
2407
+ updateWith<T extends object, TResult>(object: T, path: PropertyPath, updater: (oldValue: any) => any, customizer?: SetWithCustomizer<T>): TResult;
2408
+ }
2409
+ interface Object<T> {
2410
+ /**
2411
+ * @see _.updateWith
2412
+ */
2413
+ updateWith(path: PropertyPath, updater: (oldValue: any) => any, customizer?: SetWithCustomizer<T>): this;
2414
+ /**
2415
+ * @see _.updateWith
2416
+ */
2417
+ updateWith<TResult>(path: PropertyPath, updater: (oldValue: any) => any, customizer?: SetWithCustomizer<T>): Object<TResult>;
2418
+ }
2419
+ interface ObjectChain<T> {
2420
+ /**
2421
+ * @see _.updateWith
2422
+ */
2423
+ updateWith(path: PropertyPath, updater: (oldValue: any) => any, customizer?: SetWithCustomizer<T>): this;
2424
+ /**
2425
+ * @see _.updateWith
2426
+ */
2427
+ updateWith<TResult>(path: PropertyPath, updater: (oldValue: any) => any, customizer?: SetWithCustomizer<T>): ObjectChain<TResult>;
2428
+ }
2429
+ interface LoDashStatic {
2430
+ /**
2431
+ * Creates an array of the own enumerable property values of object.
2432
+ *
2433
+ * @param object The object to query.
2434
+ * @return Returns an array of property values.
2435
+ */
2436
+ values<T>(object: Dictionary<T> | NumericDictionary<T> | List<T> | null | undefined): T[];
2437
+ /**
2438
+ * @see _.values
2439
+ */
2440
+ values<T extends object>(object: T | null | undefined): Array<T[keyof T]>;
2441
+ /**
2442
+ * @see _.values
2443
+ */
2444
+ values(object: any): any[];
2445
+ }
2446
+ interface String {
2447
+ /**
2448
+ * @see _.values
2449
+ */
2450
+ values(): Collection<string>;
2451
+ }
2452
+ interface Object<T> {
2453
+ /**
2454
+ * @see _.values
2455
+ */
2456
+ values(): Collection<T[keyof T]>;
2457
+ }
2458
+ interface ObjectChain<T> {
2459
+ /**
2460
+ * @see _.values
2461
+ */
2462
+ values(): CollectionChain<T[keyof T]>;
2463
+ }
2464
+ interface StringChain {
2465
+ /**
2466
+ * @see _.values
2467
+ */
2468
+ values(): CollectionChain<string>;
2469
+ }
2470
+ interface StringNullableChain {
2471
+ /**
2472
+ * @see _.values
2473
+ */
2474
+ values(): CollectionChain<string>;
2475
+ }
2476
+ interface LoDashStatic {
2477
+ /**
2478
+ * Creates an array of the own and inherited enumerable property values of object.
2479
+ *
2480
+ * @param object The object to query.
2481
+ * @return Returns the array of property values.
2482
+ */
2483
+ valuesIn<T>(object: Dictionary<T> | NumericDictionary<T> | List<T> | null | undefined): T[];
2484
+ /**
2485
+ * @see _.valuesIn
2486
+ */
2487
+ valuesIn<T extends object>(object: T | null | undefined): Array<T[keyof T]>;
2488
+ }
2489
+ interface String {
2490
+ /**
2491
+ * @see _.valuesIn
2492
+ */
2493
+ valuesIn(): Collection<string>;
2494
+ }
2495
+ interface Object<T> {
2496
+ /**
2497
+ * @see _.valuesIn
2498
+ */
2499
+ valuesIn(): Collection<T[keyof T]>;
2500
+ }
2501
+ interface StringChain {
2502
+ /**
2503
+ * @see _.valuesIn
2504
+ */
2505
+ valuesIn(): CollectionChain<string>;
2506
+ }
2507
+ interface StringNullableChain {
2508
+ /**
2509
+ * @see _.valuesIn
2510
+ */
2511
+ valuesIn(): CollectionChain<string>;
2512
+ }
2513
+ interface ObjectChain<T> {
2514
+ /**
2515
+ * @see _.valuesIn
2516
+ */
2517
+ valuesIn(): CollectionChain<T[keyof T]>;
2518
+ }
2519
+ }