rambda 6.9.0 → 7.0.3
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.
- package/CHANGELOG.md +87 -1
- package/README.md +3827 -4905
- package/dist/rambda.esm.js +301 -208
- package/dist/rambda.js +306 -209
- package/dist/rambda.mjs +303 -210
- package/dist/rambda.umd.js +1 -1
- package/immutable.d.ts +207 -285
- package/index.d.ts +198 -276
- package/package.json +119 -98
- package/src/F.js +1 -1
- package/src/T.js +1 -1
- package/src/_internals/_isInteger.js +1 -1
- package/src/_internals/_objectIs.js +2 -2
- package/src/_internals/baseSlice.js +6 -8
- package/src/_internals/cloneList.js +3 -0
- package/src/_internals/isFalsy.js +5 -5
- package/src/_internals/isObject.js +3 -3
- package/src/_internals/isTruthy.js +5 -5
- package/src/_internals/set.js +4 -4
- package/src/add.js +1 -1
- package/src/adjust.js +5 -6
- package/src/all.js +3 -3
- package/src/allPass.js +4 -4
- package/src/always.js +1 -1
- package/src/and.js +1 -1
- package/src/any.js +3 -3
- package/src/anyPass.js +4 -4
- package/src/append.js +4 -2
- package/src/apply.js +7 -0
- package/src/applySpec.js +33 -59
- package/src/assoc.js +3 -7
- package/src/assocPath.js +22 -25
- package/src/bind.js +9 -0
- package/src/both.js +1 -1
- package/src/chain.js +2 -2
- package/src/clamp.js +6 -6
- package/src/clone.js +10 -10
- package/src/complement.js +1 -1
- package/src/compose.js +6 -6
- package/src/concat.js +2 -2
- package/src/cond.js +3 -3
- package/src/converge.js +11 -11
- package/src/curry.js +2 -2
- package/src/curryN.js +61 -81
- package/src/defaultTo.js +5 -8
- package/src/difference.js +3 -3
- package/src/dissoc.js +4 -4
- package/src/divide.js +1 -1
- package/src/drop.js +1 -1
- package/src/dropLast.js +5 -5
- package/src/dropLastWhile.js +12 -12
- package/src/dropRepeats.js +6 -6
- package/src/dropRepeatsWith.js +7 -7
- package/src/dropWhile.js +9 -9
- package/src/either.js +2 -2
- package/src/endsWith.js +20 -3
- package/src/eqProps.js +5 -10
- package/src/equals.js +119 -38
- package/src/evolve.js +23 -21
- package/src/filter.js +18 -18
- package/src/find.js +4 -4
- package/src/findIndex.js +3 -3
- package/src/findLast.js +4 -4
- package/src/findLastIndex.js +3 -3
- package/src/flatten.js +6 -6
- package/src/flip.js +11 -15
- package/src/forEach.js +10 -12
- package/src/fromPairs.js +2 -2
- package/src/groupBy.js +6 -6
- package/src/groupWith.js +11 -12
- package/src/hasPath.js +5 -5
- package/src/head.js +3 -3
- package/src/identical.js +1 -1
- package/src/identity.js +2 -2
- package/src/ifElse.js +3 -5
- package/src/includes.js +11 -10
- package/src/indexBy.js +11 -11
- package/src/indexOf.js +3 -25
- package/src/init.js +2 -4
- package/src/intersection.js +3 -3
- package/src/intersperse.js +5 -5
- package/src/is.js +2 -2
- package/src/isEmpty.js +5 -5
- package/src/isFunction.js +3 -3
- package/src/isNil.js +1 -1
- package/src/isPromise.js +3 -3
- package/src/join.js +1 -1
- package/src/keys.js +1 -1
- package/src/last.js +4 -4
- package/src/lastIndexOf.js +5 -11
- package/src/length.js +6 -5
- package/src/lens.js +3 -3
- package/src/lensIndex.js +4 -4
- package/src/lensProp.js +4 -4
- package/src/map.js +17 -18
- package/src/match.js +1 -1
- package/src/mathMod.js +2 -2
- package/src/max.js +1 -1
- package/src/maxBy.js +2 -4
- package/src/maybe.js +2 -4
- package/src/mean.js +2 -2
- package/src/median.js +12 -10
- package/src/merge.js +2 -4
- package/src/mergeAll.js +3 -3
- package/src/mergeDeepRight.js +8 -8
- package/src/mergeLeft.js +2 -2
- package/src/min.js +1 -1
- package/src/minBy.js +2 -4
- package/src/modulo.js +1 -1
- package/src/move.js +7 -8
- package/src/multiply.js +1 -1
- package/src/negate.js +1 -1
- package/src/none.js +4 -4
- package/src/not.js +1 -1
- package/src/nth.js +4 -4
- package/src/objOf.js +3 -3
- package/src/of.js +2 -2
- package/src/omit.js +5 -5
- package/src/once.js +6 -6
- package/src/or.js +1 -1
- package/src/over.js +3 -5
- package/src/partial.js +3 -3
- package/src/partition.js +17 -15
- package/src/path.js +6 -6
- package/src/pathEq.js +4 -6
- package/src/pathOr.js +5 -7
- package/src/paths.js +3 -3
- package/src/pick.js +5 -5
- package/src/pickAll.js +6 -6
- package/src/pipe.js +3 -3
- package/src/pluck.js +4 -4
- package/src/prepend.js +3 -3
- package/src/product.js +2 -2
- package/src/prop.js +2 -2
- package/src/propEq.js +3 -5
- package/src/propIs.js +4 -6
- package/src/propOr.js +4 -6
- package/src/props.js +6 -6
- package/src/range.js +4 -4
- package/src/reduce.js +7 -11
- package/src/reject.js +2 -2
- package/src/repeat.js +2 -2
- package/src/replace.js +2 -4
- package/src/reverse.js +3 -4
- package/src/set.js +5 -9
- package/src/slice.js +2 -4
- package/src/sort.js +4 -4
- package/src/sortBy.js +4 -2
- package/src/split.js +1 -1
- package/src/splitAt.js +9 -9
- package/src/splitEvery.js +8 -6
- package/src/splitWhen.js +10 -10
- package/src/startsWith.js +20 -3
- package/src/subtract.js +1 -1
- package/src/sum.js +1 -1
- package/src/symmetricDifference.js +9 -7
- package/src/tail.js +2 -2
- package/src/take.js +2 -4
- package/src/takeLast.js +2 -4
- package/src/takeLastWhile.js +7 -7
- package/src/takeWhile.js +8 -8
- package/src/tap.js +1 -1
- package/src/test.js +5 -3
- package/src/times.js +4 -4
- package/src/toLower.js +1 -1
- package/src/toPairs.js +1 -1
- package/src/toString.js +1 -1
- package/src/toUpper.js +1 -1
- package/src/transpose.js +4 -3
- package/src/trim.js +1 -1
- package/src/tryCatch.js +5 -5
- package/src/type.js +7 -29
- package/src/unapply.js +5 -0
- package/src/union.js +4 -3
- package/src/uniq.js +2 -2
- package/src/uniqWith.js +18 -7
- package/src/unless.js +3 -3
- package/src/update.js +6 -8
- package/src/values.js +2 -2
- package/src/view.js +2 -2
- package/src/when.js +2 -4
- package/src/where.js +5 -5
- package/src/whereEq.js +9 -7
- package/src/without.js +1 -1
- package/src/xor.js +2 -2
- package/src/zip.js +3 -3
- package/src/zipObj.js +4 -6
- package/src/zipWith.js +6 -7
package/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type RambdaTypes = "Object" | "Number" | "Boolean" | "String" | "Null" | "Array" | "RegExp" | "NaN" | "Function" | "Undefined" | "Async" | "Promise" | "Symbol";
|
|
1
|
+
export type RambdaTypes = "Object" | "Number" | "Boolean" | "String" | "Null" | "Array" | "RegExp" | "NaN" | "Function" | "Undefined" | "Async" | "Promise" | "Symbol" | "Set" | "Error";
|
|
2
2
|
|
|
3
3
|
export type IndexedIterator<T, U> = (x: T, i: number) => U;
|
|
4
4
|
export type Iterator<T, U> = (x: T) => U;
|
|
@@ -9,6 +9,7 @@ type Predicate<T> = (x: T) => boolean;
|
|
|
9
9
|
export type IndexedPredicate<T> = (x: T, i: number) => boolean;
|
|
10
10
|
export type ObjectPredicate<T> = (x: T, prop: string, inputObj: Dictionary<T>) => boolean;
|
|
11
11
|
export type RamdaPath = (number | string)[];
|
|
12
|
+
type CondPair<T extends any[], R> = [(...val: T) => boolean, (...val: T) => R]
|
|
12
13
|
|
|
13
14
|
type ValueOfRecord<R> =
|
|
14
15
|
R extends Record<any, infer T>
|
|
@@ -155,7 +156,7 @@ export function allPass<T>(predicates: ((x: T) => boolean)[]): (input: T) => boo
|
|
|
155
156
|
/**
|
|
156
157
|
* It returns function that always returns `x`.
|
|
157
158
|
*/
|
|
158
|
-
export function always<T>(x: T): () => T;
|
|
159
|
+
export function always<T>(x: T): (...args: unknown[]) => T;
|
|
159
160
|
|
|
160
161
|
/**
|
|
161
162
|
* Logical AND
|
|
@@ -196,8 +197,8 @@ export function applySpec<T>(spec: any): (...args: any[]) => T;
|
|
|
196
197
|
/**
|
|
197
198
|
* It makes a shallow clone of `obj` with setting or overriding the property `prop` with `newValue`.
|
|
198
199
|
*/
|
|
199
|
-
export function assoc<T, U, K extends string>(prop: K, val: T, obj: U): Record<K, T> & U
|
|
200
|
-
export function assoc<T, K extends string>(prop: K, val: T): <U>(obj: U) => Record<K, T> & U
|
|
200
|
+
export function assoc<T, U, K extends string>(prop: K, val: T, obj: U): Record<K, T> & Omit<U, K>;
|
|
201
|
+
export function assoc<T, K extends string>(prop: K, val: T): <U>(obj: U) => Record<K, T> & Omit<U, K>;
|
|
201
202
|
export function assoc<K extends string>(prop: K): AssocPartialOne<K>;
|
|
202
203
|
|
|
203
204
|
/**
|
|
@@ -222,7 +223,6 @@ export function both(pred1: Pred): (pred2: Pred) => Pred;
|
|
|
222
223
|
*/
|
|
223
224
|
export function chain<T, U>(fn: (n: T) => U[], list: T[]): U[];
|
|
224
225
|
export function chain<T, U>(fn: (n: T) => U[]): (list: T[]) => U[];
|
|
225
|
-
export function chain<X0, X1, R>(fn: (x0: X0, x1: X1) => R, fn1: (x1: X1) => X0): (x1: X1) => R;
|
|
226
226
|
|
|
227
227
|
/**
|
|
228
228
|
* Restrict a number `input` to be within `min` and `max` limits.
|
|
@@ -245,52 +245,75 @@ export function clone<T>(input: T[]): T[];
|
|
|
245
245
|
*
|
|
246
246
|
* The return value of `inverted` is the negative boolean value of `origin(input)`.
|
|
247
247
|
*/
|
|
248
|
-
export function complement<T extends any[]>(
|
|
248
|
+
export function complement<T extends any[]>(predicate: (...args: T) => unknown): (...args: T) => boolean;
|
|
249
249
|
|
|
250
250
|
/**
|
|
251
251
|
* It performs right-to-left function composition.
|
|
252
252
|
*/
|
|
253
|
-
export function compose<
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
export function compose<
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
export function compose<
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
253
|
+
export function compose<TArgs extends any[], R1, R2, R3, R4, R5, R6, R7, TResult>(
|
|
254
|
+
...func: [
|
|
255
|
+
fnLast: (a: any) => TResult,
|
|
256
|
+
...func: Array<(a: any) => any>,
|
|
257
|
+
f7: (a: R6) => R7,
|
|
258
|
+
f6: (a: R5) => R6,
|
|
259
|
+
f5: (a: R4) => R5,
|
|
260
|
+
f4: (a: R3) => R4,
|
|
261
|
+
f3: (a: R2) => R3,
|
|
262
|
+
f2: (a: R1) => R2,
|
|
263
|
+
f1: (...args: TArgs) => R1
|
|
264
|
+
]
|
|
265
|
+
): (...args: TArgs) => TResult; // fallback overload if number of composed functions greater than 7
|
|
266
|
+
export function compose<TArgs extends any[], R1, R2, R3, R4, R5, R6, R7, TResult>(
|
|
267
|
+
f7: (a: R6) => R7,
|
|
268
|
+
f6: (a: R5) => R6,
|
|
269
|
+
f5: (a: R4) => R5,
|
|
270
|
+
f4: (a: R3) => R4,
|
|
271
|
+
f3: (a: R2) => R3,
|
|
272
|
+
f2: (a: R1) => R2,
|
|
273
|
+
f1: (...args: TArgs) => R1
|
|
274
|
+
): (...args: TArgs) => R7;
|
|
275
|
+
export function compose<TArgs extends any[], R1, R2, R3, R4, R5, R6, R7>(
|
|
276
|
+
f7: (a: R6) => R7,
|
|
277
|
+
f6: (a: R5) => R6,
|
|
278
|
+
f5: (a: R4) => R5,
|
|
279
|
+
f4: (a: R3) => R4,
|
|
280
|
+
f3: (a: R2) => R3,
|
|
281
|
+
f2: (a: R1) => R2,
|
|
282
|
+
f1: (...args: TArgs) => R1
|
|
283
|
+
): (...args: TArgs) => R7;
|
|
284
|
+
export function compose<TArgs extends any[], R1, R2, R3, R4, R5, R6>(
|
|
285
|
+
f6: (a: R5) => R6,
|
|
286
|
+
f5: (a: R4) => R5,
|
|
287
|
+
f4: (a: R3) => R4,
|
|
288
|
+
f3: (a: R2) => R3,
|
|
289
|
+
f2: (a: R1) => R2,
|
|
290
|
+
f1: (...args: TArgs) => R1
|
|
291
|
+
): (...args: TArgs) => R6;
|
|
292
|
+
export function compose<TArgs extends any[], R1, R2, R3, R4, R5>(
|
|
293
|
+
f5: (a: R4) => R5,
|
|
294
|
+
f4: (a: R3) => R4,
|
|
295
|
+
f3: (a: R2) => R3,
|
|
296
|
+
f2: (a: R1) => R2,
|
|
297
|
+
f1: (...args: TArgs) => R1
|
|
298
|
+
): (...args: TArgs) => R5;
|
|
299
|
+
export function compose<TArgs extends any[], R1, R2, R3, R4>(
|
|
300
|
+
f4: (a: R3) => R4,
|
|
301
|
+
f3: (a: R2) => R3,
|
|
302
|
+
f2: (a: R1) => R2,
|
|
303
|
+
f1: (...args: TArgs) => R1
|
|
304
|
+
): (...args: TArgs) => R4;
|
|
305
|
+
export function compose<TArgs extends any[], R1, R2, R3>(
|
|
306
|
+
f3: (a: R2) => R3,
|
|
307
|
+
f2: (a: R1) => R2,
|
|
308
|
+
f1: (...args: TArgs) => R1
|
|
309
|
+
): (...args: TArgs) => R3;
|
|
310
|
+
export function compose<TArgs extends any[], R1, R2>(
|
|
311
|
+
f2: (a: R1) => R2,
|
|
312
|
+
f1: (...args: TArgs) => R1
|
|
313
|
+
): (...args: TArgs) => R2;
|
|
314
|
+
export function compose<TArgs extends any[], R1>(
|
|
315
|
+
f1: (...args: TArgs) => R1
|
|
316
|
+
): (...args: TArgs) => R1;
|
|
294
317
|
|
|
295
318
|
/**
|
|
296
319
|
* It returns a new string or array, which is the result of merging `x` and `y`.
|
|
@@ -309,8 +332,7 @@ export function concat(x: string): (y: string) => string;
|
|
|
309
332
|
*
|
|
310
333
|
* If no winner is found, then `fn` returns `undefined`.
|
|
311
334
|
*/
|
|
312
|
-
export function cond
|
|
313
|
-
export function cond<A, B>(conditions: ([SafePred<A>, (...a: A[]) => B])[]): (...x: A[]) => B;
|
|
335
|
+
export function cond<T extends any[], R>(conditions: Array<CondPair<T, R>>): (...args: T) => R;
|
|
314
336
|
|
|
315
337
|
/**
|
|
316
338
|
* Accepts a converging function and a list of branching functions and returns a new function. When invoked, this new function is applied to some arguments, each branching function is applied to those same arguments. The results of each branching function are passed as arguments to the converging function to produce the return value.
|
|
@@ -351,8 +373,8 @@ export function difference<T>(a: T[]): (b: T[]) => T[];
|
|
|
351
373
|
/**
|
|
352
374
|
* It returns a new object that does not contain property `prop`.
|
|
353
375
|
*/
|
|
354
|
-
export function dissoc<T>(prop:
|
|
355
|
-
export function dissoc<
|
|
376
|
+
export function dissoc<T extends object, K extends keyof T>(prop: K, obj: T): Omit<T, K>;
|
|
377
|
+
export function dissoc<K extends string | number>(prop: K): <T extends object>(obj: T) => Omit<T, K>;
|
|
356
378
|
|
|
357
379
|
export function divide(x: number, y: number): number;
|
|
358
380
|
export function divide(x: number): (y: number) => number;
|
|
@@ -388,10 +410,13 @@ export function either<T>(firstPredicate: Predicate<T>): (secondPredicate: Predi
|
|
|
388
410
|
export function either(firstPredicate: Pred): (secondPredicate: Pred) => Pred;
|
|
389
411
|
|
|
390
412
|
/**
|
|
391
|
-
*
|
|
413
|
+
* When iterable is a string, then it behaves as `String.prototype.endsWith`.
|
|
414
|
+
* When iterable is a list, then it uses R.equals to determine if the target list ends in the same way as the given target.
|
|
392
415
|
*/
|
|
393
|
-
export function endsWith(target: string,
|
|
394
|
-
export function endsWith(target: string): (
|
|
416
|
+
export function endsWith(target: string, iterable: string): boolean;
|
|
417
|
+
export function endsWith(target: string): (iterable: string) => boolean;
|
|
418
|
+
export function endsWith<T>(target: T[], list: T[]): boolean;
|
|
419
|
+
export function endsWith<T>(target: T[]): (list: T[]) => boolean;
|
|
395
420
|
|
|
396
421
|
/**
|
|
397
422
|
* It deeply compares `x` and `y` and returns `true` if they are equal.
|
|
@@ -470,6 +495,8 @@ export function fromPairs<V>(listOfPairs: ([string, V])[]): { [index: string]: V
|
|
|
470
495
|
*/
|
|
471
496
|
export function groupBy<T>(groupFn: (x: T) => string, list: T[]): { [index: string]: T[] };
|
|
472
497
|
export function groupBy<T>(groupFn: (x: T) => string): (list: T[]) => { [index: string]: T[] };
|
|
498
|
+
export function groupBy<T, U>(groupFn: (x: T) => string, list: T[]): U;
|
|
499
|
+
export function groupBy<T, U>(groupFn: (x: T) => string): (list: T[]) => U;
|
|
473
500
|
|
|
474
501
|
/**
|
|
475
502
|
* It returns separated version of list or string `input`, where separation is done with equality `compareFn` function.
|
|
@@ -498,8 +525,9 @@ export function hasPath<T>(
|
|
|
498
525
|
/**
|
|
499
526
|
* It returns the first element of list or string `input`.
|
|
500
527
|
*/
|
|
501
|
-
export function head<T>(input: T[]): T | undefined;
|
|
502
528
|
export function head(input: string): string;
|
|
529
|
+
export function head(emptyList: []): undefined;
|
|
530
|
+
export function head<T>(input: T[]): T | undefined;
|
|
503
531
|
|
|
504
532
|
/**
|
|
505
533
|
* It returns `true` if its arguments `a` and `b` are identical.
|
|
@@ -519,16 +547,7 @@ export function identity<T>(input: T): T;
|
|
|
519
547
|
*
|
|
520
548
|
* When `fn`` is called with `input` argument, it will return either `onTrue(input)` or `onFalse(input)` depending on `condition(input)` evaluation.
|
|
521
549
|
*/
|
|
522
|
-
export function ifElse<
|
|
523
|
-
condition: (x: T) => boolean,
|
|
524
|
-
onTrue: (x: T) => U,
|
|
525
|
-
onFalse: (x: T) => U,
|
|
526
|
-
): (x: T) => U;
|
|
527
|
-
export function ifElse<T, K, U>(
|
|
528
|
-
condition: (x: T, y: K) => boolean,
|
|
529
|
-
onTrue: (x: T, y: K) => U,
|
|
530
|
-
onFalse: (x: T, y: K) => U,
|
|
531
|
-
): (x: T, y: K) => U;
|
|
550
|
+
export function ifElse<TArgs extends any[], TOnTrueResult, TOnFalseResult>(fn: (...args: TArgs) => boolean, onTrue: (...args: TArgs) => TOnTrueResult, onFalse: (...args: TArgs) => TOnFalseResult): (...args: TArgs) => TOnTrueResult | TOnFalseResult;
|
|
532
551
|
|
|
533
552
|
/**
|
|
534
553
|
* It increments a number.
|
|
@@ -588,8 +607,10 @@ export function intersperse<T>(separator: T): (list: T[]) => T[];
|
|
|
588
607
|
/**
|
|
589
608
|
* It returns `true` if `x` is instance of `targetPrototype`.
|
|
590
609
|
*/
|
|
591
|
-
export function is(targetPrototype:
|
|
592
|
-
export function is(
|
|
610
|
+
export function is<C extends () => any>(targetPrototype: C, val: any): val is ReturnType<C>;
|
|
611
|
+
export function is<C extends new () => any>(targetPrototype: C, val: any): val is InstanceType<C>;
|
|
612
|
+
export function is<C extends () => any>(targetPrototype: C): (val: any) => val is ReturnType<C>;
|
|
613
|
+
export function is<C extends new () => any>(targetPrototype: C): (val: any) => val is InstanceType<C>;
|
|
593
614
|
|
|
594
615
|
/**
|
|
595
616
|
* It returns `true` if `x` is `empty`.
|
|
@@ -618,7 +639,7 @@ export function keys<T>(x: T): string[];
|
|
|
618
639
|
*/
|
|
619
640
|
export function last(str: string): string;
|
|
620
641
|
export function last(emptyList: []): undefined;
|
|
621
|
-
export function last<T extends any>(list: T[]): T;
|
|
642
|
+
export function last<T extends any>(list: T[]): T | undefined;
|
|
622
643
|
|
|
623
644
|
/**
|
|
624
645
|
* It returns the last index of `target` in `list` array.
|
|
@@ -744,8 +765,8 @@ export function median(list: number[]): number;
|
|
|
744
765
|
/**
|
|
745
766
|
* It creates a copy of `target` object with overidden `newProps` properties.
|
|
746
767
|
*/
|
|
747
|
-
export function merge<
|
|
748
|
-
export function merge<Output>(target:
|
|
768
|
+
export function merge<A, B>(target: A, newProps: B): A & B
|
|
769
|
+
export function merge<Output>(target: any): (newProps: any) => Output;
|
|
749
770
|
|
|
750
771
|
/**
|
|
751
772
|
* It merges all objects of `list` array sequentially and returns the result.
|
|
@@ -938,197 +959,61 @@ export function pickAll<T, U>(propsToPick: string): (input: T) => U;
|
|
|
938
959
|
/**
|
|
939
960
|
* It performs left-to-right function composition.
|
|
940
961
|
*/
|
|
941
|
-
export function pipe<
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
export function pipe<
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
export function pipe<
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
export function pipe<
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
fn2: (x: T2) => T3,
|
|
997
|
-
fn3: (x: T3) => T4,
|
|
998
|
-
fn4: (x: T4) => T5,
|
|
999
|
-
fn5: (x: T5) => T6,
|
|
1000
|
-
fn6: (x: T6) => T7): (x0: V0, x1: V1) => T7;
|
|
1001
|
-
export function pipe<V0, V1, V2, T1, T2, T3, T4, T5, T6, T7>(
|
|
1002
|
-
fn0: (x0: V0, x1: V1, x2: V2) => T1,
|
|
1003
|
-
fn1: (x: T1) => T2,
|
|
1004
|
-
fn2: (x: T2) => T3,
|
|
1005
|
-
fn3: (x: T3) => T4,
|
|
1006
|
-
fn4: (x: T4) => T5,
|
|
1007
|
-
fn5: (x: T5) => T6,
|
|
1008
|
-
fn6: (x: T6) => T7): (x0: V0, x1: V1, x2: V2) => T7;
|
|
1009
|
-
|
|
1010
|
-
export function pipe<T1, T2, T3, T4, T5, T6, T7, T8>(
|
|
1011
|
-
fn0: () => T1,
|
|
1012
|
-
fn1: (x: T1) => T2,
|
|
1013
|
-
fn2: (x: T2) => T3,
|
|
1014
|
-
fn3: (x: T3) => T4,
|
|
1015
|
-
fn4: (x: T4) => T5,
|
|
1016
|
-
fn5: (x: T5) => T6,
|
|
1017
|
-
fn6: (x: T6) => T7,
|
|
1018
|
-
fn: (x: T7) => T8): () => T8;
|
|
1019
|
-
export function pipe<V0, T1, T2, T3, T4, T5, T6, T7, T8>(
|
|
1020
|
-
fn0: (x: V0) => T1,
|
|
1021
|
-
fn1: (x: T1) => T2,
|
|
1022
|
-
fn2: (x: T2) => T3,
|
|
1023
|
-
fn3: (x: T3) => T4,
|
|
1024
|
-
fn4: (x: T4) => T5,
|
|
1025
|
-
fn5: (x: T5) => T6,
|
|
1026
|
-
fn6: (x: T6) => T7,
|
|
1027
|
-
fn: (x: T7) => T8): (x: V0) => T8;
|
|
1028
|
-
export function pipe<V0, V1, T1, T2, T3, T4, T5, T6, T7, T8>(
|
|
1029
|
-
fn0: (x0: V0, x1: V1) => T1,
|
|
1030
|
-
fn1: (x: T1) => T2,
|
|
1031
|
-
fn2: (x: T2) => T3,
|
|
1032
|
-
fn3: (x: T3) => T4,
|
|
1033
|
-
fn4: (x: T4) => T5,
|
|
1034
|
-
fn5: (x: T5) => T6,
|
|
1035
|
-
fn6: (x: T6) => T7,
|
|
1036
|
-
fn7: (x: T7) => T8): (x0: V0, x1: V1) => T8;
|
|
1037
|
-
export function pipe<V0, V1, V2, T1, T2, T3, T4, T5, T6, T7, T8>(
|
|
1038
|
-
fn0: (x0: V0, x1: V1, x2: V2) => T1,
|
|
1039
|
-
fn1: (x: T1) => T2,
|
|
1040
|
-
fn2: (x: T2) => T3,
|
|
1041
|
-
fn3: (x: T3) => T4,
|
|
1042
|
-
fn4: (x: T4) => T5,
|
|
1043
|
-
fn5: (x: T5) => T6,
|
|
1044
|
-
fn6: (x: T6) => T7,
|
|
1045
|
-
fn7: (x: T7) => T8): (x0: V0, x1: V1, x2: V2) => T8;
|
|
1046
|
-
|
|
1047
|
-
export function pipe<T1, T2, T3, T4, T5, T6, T7, T8, T9>(
|
|
1048
|
-
fn0: () => T1,
|
|
1049
|
-
fn1: (x: T1) => T2,
|
|
1050
|
-
fn2: (x: T2) => T3,
|
|
1051
|
-
fn3: (x: T3) => T4,
|
|
1052
|
-
fn4: (x: T4) => T5,
|
|
1053
|
-
fn5: (x: T5) => T6,
|
|
1054
|
-
fn6: (x: T6) => T7,
|
|
1055
|
-
fn7: (x: T7) => T8,
|
|
1056
|
-
fn8: (x: T8) => T9): () => T9;
|
|
1057
|
-
export function pipe<V0, T1, T2, T3, T4, T5, T6, T7, T8, T9>(
|
|
1058
|
-
fn0: (x0: V0) => T1,
|
|
1059
|
-
fn1: (x: T1) => T2,
|
|
1060
|
-
fn2: (x: T2) => T3,
|
|
1061
|
-
fn3: (x: T3) => T4,
|
|
1062
|
-
fn4: (x: T4) => T5,
|
|
1063
|
-
fn5: (x: T5) => T6,
|
|
1064
|
-
fn6: (x: T6) => T7,
|
|
1065
|
-
fn7: (x: T7) => T8,
|
|
1066
|
-
fn8: (x: T8) => T9): (x0: V0) => T9;
|
|
1067
|
-
export function pipe<V0, V1, T1, T2, T3, T4, T5, T6, T7, T8, T9>(
|
|
1068
|
-
fn0: (x0: V0, x1: V1) => T1,
|
|
1069
|
-
fn1: (x: T1) => T2,
|
|
1070
|
-
fn2: (x: T2) => T3,
|
|
1071
|
-
fn3: (x: T3) => T4,
|
|
1072
|
-
fn4: (x: T4) => T5,
|
|
1073
|
-
fn5: (x: T5) => T6,
|
|
1074
|
-
fn6: (x: T6) => T7,
|
|
1075
|
-
fn7: (x: T7) => T8,
|
|
1076
|
-
fn8: (x: T8) => T9): (x0: V0, x1: V1) => T9;
|
|
1077
|
-
export function pipe<V0, V1, V2, T1, T2, T3, T4, T5, T6, T7, T8, T9>(
|
|
1078
|
-
fn0: (x0: V0, x1: V1, x2: V2) => T1,
|
|
1079
|
-
fn1: (x: T1) => T2,
|
|
1080
|
-
fn2: (x: T2) => T3,
|
|
1081
|
-
fn3: (x: T3) => T4,
|
|
1082
|
-
fn4: (x: T4) => T5,
|
|
1083
|
-
fn5: (x: T5) => T6,
|
|
1084
|
-
fn6: (x: T6) => T7,
|
|
1085
|
-
fn7: (x: T7) => T8,
|
|
1086
|
-
fn8: (x: T8) => T9): (x0: V0, x1: V1, x2: V2) => T9;
|
|
1087
|
-
|
|
1088
|
-
export function pipe<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(
|
|
1089
|
-
fn0: () => T1,
|
|
1090
|
-
fn1: (x: T1) => T2,
|
|
1091
|
-
fn2: (x: T2) => T3,
|
|
1092
|
-
fn3: (x: T3) => T4,
|
|
1093
|
-
fn4: (x: T4) => T5,
|
|
1094
|
-
fn5: (x: T5) => T6,
|
|
1095
|
-
fn6: (x: T6) => T7,
|
|
1096
|
-
fn7: (x: T7) => T8,
|
|
1097
|
-
fn8: (x: T8) => T9,
|
|
1098
|
-
fn9: (x: T9) => T10): () => T10;
|
|
1099
|
-
export function pipe<V0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(
|
|
1100
|
-
fn0: (x0: V0) => T1,
|
|
1101
|
-
fn1: (x: T1) => T2,
|
|
1102
|
-
fn2: (x: T2) => T3,
|
|
1103
|
-
fn3: (x: T3) => T4,
|
|
1104
|
-
fn4: (x: T4) => T5,
|
|
1105
|
-
fn5: (x: T5) => T6,
|
|
1106
|
-
fn6: (x: T6) => T7,
|
|
1107
|
-
fn7: (x: T7) => T8,
|
|
1108
|
-
fn8: (x: T8) => T9,
|
|
1109
|
-
fn9: (x: T9) => T10): (x0: V0) => T10;
|
|
1110
|
-
export function pipe<V0, V1, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(
|
|
1111
|
-
fn0: (x0: V0, x1: V1) => T1,
|
|
1112
|
-
fn1: (x: T1) => T2,
|
|
1113
|
-
fn2: (x: T2) => T3,
|
|
1114
|
-
fn3: (x: T3) => T4,
|
|
1115
|
-
fn4: (x: T4) => T5,
|
|
1116
|
-
fn5: (x: T5) => T6,
|
|
1117
|
-
fn6: (x: T6) => T7,
|
|
1118
|
-
fn7: (x: T7) => T8,
|
|
1119
|
-
fn8: (x: T8) => T9,
|
|
1120
|
-
fn9: (x: T9) => T10): (x0: V0, x1: V1) => T10;
|
|
1121
|
-
export function pipe<V0, V1, V2, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(
|
|
1122
|
-
fn0: (x0: V0, x1: V1, x2: V2) => T1,
|
|
1123
|
-
fn1: (x: T1) => T2,
|
|
1124
|
-
fn2: (x: T2) => T3,
|
|
1125
|
-
fn3: (x: T3) => T4,
|
|
1126
|
-
fn4: (x: T4) => T5,
|
|
1127
|
-
fn5: (x: T5) => T6,
|
|
1128
|
-
fn6: (x: T6) => T7,
|
|
1129
|
-
fn7: (x: T7) => T8,
|
|
1130
|
-
fn8: (x: T8) => T9,
|
|
1131
|
-
fn9: (x: T9) => T10): (x0: V0, x1: V1, x2: V2) => T10;
|
|
962
|
+
export function pipe<TArgs extends any[], R1, R2, R3, R4, R5, R6, R7, TResult>(
|
|
963
|
+
...funcs: [
|
|
964
|
+
f1: (...args: TArgs) => R1,
|
|
965
|
+
f2: (a: R1) => R2,
|
|
966
|
+
f3: (a: R2) => R3,
|
|
967
|
+
f4: (a: R3) => R4,
|
|
968
|
+
f5: (a: R4) => R5,
|
|
969
|
+
f6: (a: R5) => R6,
|
|
970
|
+
f7: (a: R6) => R7,
|
|
971
|
+
...func: Array<(a: any) => any>,
|
|
972
|
+
fnLast: (a: any) => TResult
|
|
973
|
+
]
|
|
974
|
+
): (...args: TArgs) => TResult; // fallback overload if number of piped functions greater than 7
|
|
975
|
+
export function pipe<TArgs extends any[], R1, R2, R3, R4, R5, R6, R7>(
|
|
976
|
+
f1: (...args: TArgs) => R1,
|
|
977
|
+
f2: (a: R1) => R2,
|
|
978
|
+
f3: (a: R2) => R3,
|
|
979
|
+
f4: (a: R3) => R4,
|
|
980
|
+
f5: (a: R4) => R5,
|
|
981
|
+
f6: (a: R5) => R6,
|
|
982
|
+
f7: (a: R6) => R7
|
|
983
|
+
): (...args: TArgs) => R7;
|
|
984
|
+
export function pipe<TArgs extends any[], R1, R2, R3, R4, R5, R6>(
|
|
985
|
+
f1: (...args: TArgs) => R1,
|
|
986
|
+
f2: (a: R1) => R2,
|
|
987
|
+
f3: (a: R2) => R3,
|
|
988
|
+
f4: (a: R3) => R4,
|
|
989
|
+
f5: (a: R4) => R5,
|
|
990
|
+
f6: (a: R5) => R6
|
|
991
|
+
): (...args: TArgs) => R6;
|
|
992
|
+
export function pipe<TArgs extends any[], R1, R2, R3, R4, R5>(
|
|
993
|
+
f1: (...args: TArgs) => R1,
|
|
994
|
+
f2: (a: R1) => R2,
|
|
995
|
+
f3: (a: R2) => R3,
|
|
996
|
+
f4: (a: R3) => R4,
|
|
997
|
+
f5: (a: R4) => R5
|
|
998
|
+
): (...args: TArgs) => R5;
|
|
999
|
+
export function pipe<TArgs extends any[], R1, R2, R3, R4>(
|
|
1000
|
+
f1: (...args: TArgs) => R1,
|
|
1001
|
+
f2: (a: R1) => R2,
|
|
1002
|
+
f3: (a: R2) => R3,
|
|
1003
|
+
f4: (a: R3) => R4
|
|
1004
|
+
): (...args: TArgs) => R4;
|
|
1005
|
+
export function pipe<TArgs extends any[], R1, R2, R3>(
|
|
1006
|
+
f1: (...args: TArgs) => R1,
|
|
1007
|
+
f2: (a: R1) => R2,
|
|
1008
|
+
f3: (a: R2) => R3
|
|
1009
|
+
): (...args: TArgs) => R3;
|
|
1010
|
+
export function pipe<TArgs extends any[], R1, R2>(
|
|
1011
|
+
f1: (...args: TArgs) => R1,
|
|
1012
|
+
f2: (a: R1) => R2
|
|
1013
|
+
): (...args: TArgs) => R2;
|
|
1014
|
+
export function pipe<TArgs extends any[], R1>(
|
|
1015
|
+
f1: (...args: TArgs) => R1
|
|
1016
|
+
): (...args: TArgs) => R1;
|
|
1132
1017
|
|
|
1133
1018
|
/**
|
|
1134
1019
|
* It returns list of the values of `property` taken from the all objects inside `list`.
|
|
@@ -1151,9 +1036,10 @@ export function product(list: number[]): number;
|
|
|
1151
1036
|
*
|
|
1152
1037
|
* If there is no such property, it returns `undefined`.
|
|
1153
1038
|
*/
|
|
1154
|
-
export function prop<P extends keyof
|
|
1155
|
-
export function prop<P extends
|
|
1156
|
-
export function prop<P extends
|
|
1039
|
+
export function prop<P extends keyof O, O>(propToFind: P, obj: O): O[P];
|
|
1040
|
+
export function prop<P extends keyof O, O>(propToFind: P): (obj: O) => O[P];
|
|
1041
|
+
export function prop<P extends string | number>(propToFind: P): <T>(obj: Record<P, T>) => T;
|
|
1042
|
+
export function prop<P extends string | number, T>(propToFind: P): (obj: Record<P, T>) => T;
|
|
1157
1043
|
|
|
1158
1044
|
/**
|
|
1159
1045
|
* It returns true if `obj` has property `propToFind` and its value is equal to `valueToMatch`.
|
|
@@ -1168,11 +1054,17 @@ export function propEq<K extends string | number>(propToFind: K): {
|
|
|
1168
1054
|
/**
|
|
1169
1055
|
* It returns `true` if `property` of `obj` is from `target` type.
|
|
1170
1056
|
*/
|
|
1171
|
-
export function propIs(
|
|
1172
|
-
export function propIs(
|
|
1173
|
-
export function propIs(
|
|
1174
|
-
|
|
1175
|
-
|
|
1057
|
+
export function propIs<C extends (...args: any[]) => any, K extends keyof any>(type: C, name: K, obj: any): obj is Record<K, ReturnType<C>>;
|
|
1058
|
+
export function propIs<C extends new (...args: any[]) => any, K extends keyof any>(type: C, name: K, obj: any): obj is Record<K, InstanceType<C>>;
|
|
1059
|
+
export function propIs<C extends (...args: any[]) => any, K extends keyof any>(type: C, name: K): (obj: any) => obj is Record<K, ReturnType<C>>;
|
|
1060
|
+
export function propIs<C extends new (...args: any[]) => any, K extends keyof any>(type: C, name: K): (obj: any) => obj is Record<K, InstanceType<C>>;
|
|
1061
|
+
export function propIs<C extends (...args: any[]) => any>(type: C): {
|
|
1062
|
+
<K extends keyof any>(name: K, obj: any): obj is Record<K, ReturnType<C>>;
|
|
1063
|
+
<K extends keyof any>(name: K): (obj: any) => obj is Record<K, ReturnType<C>>;
|
|
1064
|
+
};
|
|
1065
|
+
export function propIs<C extends new (...args: any[]) => any>(type: C): {
|
|
1066
|
+
<K extends keyof any>(name: K, obj: any): obj is Record<K, InstanceType<C>>;
|
|
1067
|
+
<K extends keyof any>(name: K): (obj: any) => obj is Record<K, InstanceType<C>>;
|
|
1176
1068
|
};
|
|
1177
1069
|
|
|
1178
1070
|
/**
|
|
@@ -1232,15 +1124,16 @@ export function slice(from: number): {
|
|
|
1232
1124
|
};
|
|
1233
1125
|
|
|
1234
1126
|
/**
|
|
1235
|
-
* It returns copy of `list` sorted by `sortFn` function
|
|
1127
|
+
* It returns copy of `list` sorted by `sortFn` function, where `sortFn` needs to return only `-1`, `0` or `1`.
|
|
1236
1128
|
*/
|
|
1237
1129
|
export function sort<T>(sortFn: (a: T, b: T) => number, list: T[]): T[];
|
|
1238
1130
|
export function sort<T>(sortFn: (a: T, b: T) => number): (list: T[]) => T[];
|
|
1239
1131
|
|
|
1240
1132
|
/**
|
|
1241
|
-
* It returns copy of `list` sorted by `sortFn` function.
|
|
1133
|
+
* It returns copy of `list` sorted by `sortFn` function, where `sortFn` function returns a value to compare, i.e. it doesn't need to return only `-1`, `0` or `1`.
|
|
1242
1134
|
*/
|
|
1243
1135
|
export function sortBy<T>(sortFn: (a: T) => Ord, list: T[]): T[];
|
|
1136
|
+
export function sortBy<T>(sortFn: (a: T) => Ord): (list: T[]) => T[];
|
|
1244
1137
|
export function sortBy(sortFn: (a: any) => Ord): <T>(list: T[]) => T[];
|
|
1245
1138
|
|
|
1246
1139
|
/**
|
|
@@ -1260,10 +1153,13 @@ export function splitEvery(sliceLength: number): {
|
|
|
1260
1153
|
};
|
|
1261
1154
|
|
|
1262
1155
|
/**
|
|
1263
|
-
*
|
|
1156
|
+
* When iterable is a string, then it behaves as `String.prototype.startsWith`.
|
|
1157
|
+
* When iterable is a list, then it uses R.equals to determine if the target list starts in the same way as the given target.
|
|
1264
1158
|
*/
|
|
1265
1159
|
export function startsWith(target: string, str: string): boolean;
|
|
1266
1160
|
export function startsWith(target: string): (str: string) => boolean;
|
|
1161
|
+
export function startsWith<T>(target: T[], list: T[]): boolean;
|
|
1162
|
+
export function startsWith<T>(target: T[]): (list: T[]) => boolean;
|
|
1267
1163
|
|
|
1268
1164
|
/**
|
|
1269
1165
|
* Curried version of `x - y`
|
|
@@ -1331,16 +1227,19 @@ export function test(regExpression: RegExp, str: string): boolean;
|
|
|
1331
1227
|
export function times<T>(fn: (i: number) => T, howMany: number): T[];
|
|
1332
1228
|
export function times<T>(fn: (i: number) => T): (howMany: number) => T[];
|
|
1333
1229
|
|
|
1230
|
+
export function toLower<S extends string>(str: S): Lowercase<S>;
|
|
1334
1231
|
export function toLower(str: string): string;
|
|
1335
1232
|
|
|
1233
|
+
export function toUpper<S extends string>(str: S): Uppercase<S>;
|
|
1336
1234
|
export function toUpper(str: string): string;
|
|
1337
1235
|
|
|
1338
1236
|
/**
|
|
1339
1237
|
* It transforms an object to a list.
|
|
1340
1238
|
*/
|
|
1341
|
-
export function toPairs<
|
|
1239
|
+
export function toPairs<O extends object, K extends Extract<keyof O, string | number>>(obj: O): Array<{ [key in K]: [`${key}`, O[key]] }[K]>;
|
|
1240
|
+
export function toPairs<S>(obj: Record<string | number, S>): Array<[string, S]>;
|
|
1342
1241
|
|
|
1343
|
-
export function toString
|
|
1242
|
+
export function toString(x: unknown): string;
|
|
1344
1243
|
|
|
1345
1244
|
export function transpose<T>(list: (T[])[]): (T[])[];
|
|
1346
1245
|
|
|
@@ -1401,8 +1300,10 @@ export function uniqWith<T, U>(predicate: (x: T, y: T) => boolean): (list: T[])
|
|
|
1401
1300
|
*
|
|
1402
1301
|
* In the other case, the final output will be the `input` itself.
|
|
1403
1302
|
*/
|
|
1404
|
-
export function unless<T, U>(predicate: (x: T) => boolean, whenFalseFn: (x: T) => U,
|
|
1405
|
-
export function unless<T, U>(predicate: (x: T) => boolean, whenFalseFn: (x: T) => U): (
|
|
1303
|
+
export function unless<T, U>(predicate: (x: T) => boolean, whenFalseFn: (x: T) => U, x: T): T | U;
|
|
1304
|
+
export function unless<T, U>(predicate: (x: T) => boolean, whenFalseFn: (x: T) => U): (x: T) => T | U;
|
|
1305
|
+
export function unless<T>(predicate: (x: T) => boolean, whenFalseFn: (x: T) => T, x: T): T;
|
|
1306
|
+
export function unless<T>(predicate: (x: T) => boolean, whenFalseFn: (x: T) => T): (x: T) => T;
|
|
1406
1307
|
|
|
1407
1308
|
/**
|
|
1408
1309
|
* It returns a copy of `list` with updated element at `index` with `newValue`.
|
|
@@ -1536,3 +1437,24 @@ export function takeWhile<T>(fn: Predicate<T>): (iterable: T[]) => T[];
|
|
|
1536
1437
|
export function eqProps<T, U>(prop: string, obj1: T, obj2: U): boolean;
|
|
1537
1438
|
export function eqProps<P extends string>(prop: P): <T, U>(obj1: Record<P, T>, obj2: Record<P, U>) => boolean;
|
|
1538
1439
|
export function eqProps<T>(prop: string, obj1: T): <U>(obj2: U) => boolean;
|
|
1440
|
+
|
|
1441
|
+
/**
|
|
1442
|
+
* It calls a function `fn` with the list of values of the returned function.
|
|
1443
|
+
*
|
|
1444
|
+
* `R.unapply` is the opposite of `R.apply` method.
|
|
1445
|
+
*/
|
|
1446
|
+
export function unapply<T = any>(fn: (args: any[]) => T): (...args: any[]) => T;
|
|
1447
|
+
|
|
1448
|
+
/**
|
|
1449
|
+
* It applies function `fn` to the list of arguments.
|
|
1450
|
+
*
|
|
1451
|
+
* This is useful for creating a fixed-arity function from a variadic function. `fn` should be a bound function if context is significant.
|
|
1452
|
+
*/
|
|
1453
|
+
export function apply<T = any>(fn: (...args: any[]) => T, args: any[]): T;
|
|
1454
|
+
export function apply<T = any>(fn: (...args: any[]) => T): (args: any[]) => T;
|
|
1455
|
+
|
|
1456
|
+
/**
|
|
1457
|
+
* Creates a function that is bound to a context.
|
|
1458
|
+
*/
|
|
1459
|
+
export function bind<F extends (...args: any[]) => any, T>(fn: F, thisObj: T): (...args: Parameters<F>) => ReturnType<F>;
|
|
1460
|
+
export function bind<F extends (...args: any[]) => any, T>(fn: F): (thisObj: T) => (...args: Parameters<F>) => ReturnType<F>;
|