| 1 | type __ = typeof curryRightPlaceholder;
|
|---|
| 2 | interface RightCurriedFunction1<T1, R> {
|
|---|
| 3 | (): RightCurriedFunction1<T1, R>;
|
|---|
| 4 | (t1: T1): R;
|
|---|
| 5 | }
|
|---|
| 6 | interface RightCurriedFunction2<T1, T2, R> {
|
|---|
| 7 | (): RightCurriedFunction2<T1, T2, R>;
|
|---|
| 8 | (t2: T2): RightCurriedFunction1<T1, R>;
|
|---|
| 9 | (t1: T1, t2: __): RightCurriedFunction1<T2, R>;
|
|---|
| 10 | (t1: T1, t2: T2): R;
|
|---|
| 11 | }
|
|---|
| 12 | interface RightCurriedFunction3<T1, T2, T3, R> {
|
|---|
| 13 | (): RightCurriedFunction3<T1, T2, T3, R>;
|
|---|
| 14 | (t3: T3): RightCurriedFunction2<T1, T2, R>;
|
|---|
| 15 | (t2: T2, t3: __): RightCurriedFunction2<T1, T3, R>;
|
|---|
| 16 | (t2: T2, t3: T3): RightCurriedFunction1<T1, R>;
|
|---|
| 17 | (t1: T1, t2: __, t3: __): RightCurriedFunction2<T2, T3, R>;
|
|---|
| 18 | (t1: T1, t2: T2, t3: __): RightCurriedFunction1<T3, R>;
|
|---|
| 19 | (t1: T1, t2: __, t3: T3): RightCurriedFunction1<T2, R>;
|
|---|
| 20 | (t1: T1, t2: T2, t3: T3): R;
|
|---|
| 21 | }
|
|---|
| 22 | interface RightCurriedFunction4<T1, T2, T3, T4, R> {
|
|---|
| 23 | (): RightCurriedFunction4<T1, T2, T3, T4, R>;
|
|---|
| 24 | (t4: T4): RightCurriedFunction3<T1, T2, T3, R>;
|
|---|
| 25 | (t3: T3, t4: __): RightCurriedFunction3<T1, T2, T4, R>;
|
|---|
| 26 | (t3: T3, t4: T4): RightCurriedFunction2<T1, T2, R>;
|
|---|
| 27 | (t2: T2, t3: __, t4: __): RightCurriedFunction3<T1, T3, T4, R>;
|
|---|
| 28 | (t2: T2, t3: T3, t4: __): RightCurriedFunction2<T1, T4, R>;
|
|---|
| 29 | (t2: T2, t3: __, t4: T4): RightCurriedFunction2<T1, T3, R>;
|
|---|
| 30 | (t2: T2, t3: T3, t4: T4): RightCurriedFunction1<T1, R>;
|
|---|
| 31 | (t1: T1, t2: __, t3: __, t4: __): RightCurriedFunction3<T2, T3, T4, R>;
|
|---|
| 32 | (t1: T1, t2: T2, t3: __, t4: __): RightCurriedFunction2<T3, T4, R>;
|
|---|
| 33 | (t1: T1, t2: __, t3: T3, t4: __): RightCurriedFunction2<T2, T4, R>;
|
|---|
| 34 | (t1: T1, t2: __, t3: __, t4: T4): RightCurriedFunction2<T2, T3, R>;
|
|---|
| 35 | (t1: T1, t2: T2, t3: T3, t4: __): RightCurriedFunction1<T4, R>;
|
|---|
| 36 | (t1: T1, t2: T2, t3: __, t4: T4): RightCurriedFunction1<T3, R>;
|
|---|
| 37 | (t1: T1, t2: __, t3: T3, t4: T4): RightCurriedFunction1<T2, R>;
|
|---|
| 38 | (t1: T1, t2: T2, t3: T3, t4: T4): R;
|
|---|
| 39 | }
|
|---|
| 40 | interface RightCurriedFunction5<T1, T2, T3, T4, T5, R> {
|
|---|
| 41 | (): RightCurriedFunction5<T1, T2, T3, T4, T5, R>;
|
|---|
| 42 | (t5: T5): RightCurriedFunction4<T1, T2, T3, T4, R>;
|
|---|
| 43 | (t4: T4, t5: __): RightCurriedFunction4<T1, T2, T3, T5, R>;
|
|---|
| 44 | (t4: T4, t5: T5): RightCurriedFunction3<T1, T2, T3, R>;
|
|---|
| 45 | (t3: T3, t4: __, t5: __): RightCurriedFunction4<T1, T2, T4, T5, R>;
|
|---|
| 46 | (t3: T3, t4: T4, t5: __): RightCurriedFunction3<T1, T2, T5, R>;
|
|---|
| 47 | (t3: T3, t4: __, t5: T5): RightCurriedFunction3<T1, T2, T4, R>;
|
|---|
| 48 | (t3: T3, t4: T4, t5: T5): RightCurriedFunction2<T1, T2, R>;
|
|---|
| 49 | (t2: T2, t3: __, t4: __, t5: __): RightCurriedFunction4<T1, T3, T4, T5, R>;
|
|---|
| 50 | (t2: T2, t3: T3, t4: __, t5: __): RightCurriedFunction3<T1, T4, T5, R>;
|
|---|
| 51 | (t2: T2, t3: __, t4: T4, t5: __): RightCurriedFunction3<T1, T3, T5, R>;
|
|---|
| 52 | (t2: T2, t3: __, t4: __, t5: T5): RightCurriedFunction3<T1, T3, T4, R>;
|
|---|
| 53 | (t2: T2, t3: T3, t4: T4, t5: __): RightCurriedFunction2<T1, T5, R>;
|
|---|
| 54 | (t2: T2, t3: T3, t4: __, t5: T5): RightCurriedFunction2<T1, T4, R>;
|
|---|
| 55 | (t2: T2, t3: __, t4: T4, t5: T5): RightCurriedFunction2<T1, T3, R>;
|
|---|
| 56 | (t2: T2, t3: T3, t4: T4, t5: T5): RightCurriedFunction1<T1, R>;
|
|---|
| 57 | (t1: T1, t2: __, t3: __, t4: __, t5: __): RightCurriedFunction4<T2, T3, T4, T5, R>;
|
|---|
| 58 | (t1: T1, t2: T2, t3: __, t4: __, t5: __): RightCurriedFunction3<T3, T4, T5, R>;
|
|---|
| 59 | (t1: T1, t2: __, t3: T3, t4: __, t5: __): RightCurriedFunction3<T2, T4, T5, R>;
|
|---|
| 60 | (t1: T1, t2: __, t3: __, t4: T4, t5: __): RightCurriedFunction3<T2, T3, T5, R>;
|
|---|
| 61 | (t1: T1, t2: __, t3: __, t4: __, t5: T5): RightCurriedFunction3<T2, T3, T4, R>;
|
|---|
| 62 | (t1: T1, t2: T2, t3: T3, t4: __, t5: __): RightCurriedFunction2<T4, T5, R>;
|
|---|
| 63 | (t1: T1, t2: T2, t3: __, t4: T4, t5: __): RightCurriedFunction2<T3, T5, R>;
|
|---|
| 64 | (t1: T1, t2: T2, t3: __, t4: __, t5: T5): RightCurriedFunction2<T3, T4, R>;
|
|---|
| 65 | (t1: T1, t2: __, t3: T3, t4: T4, t5: __): RightCurriedFunction2<T2, T5, R>;
|
|---|
| 66 | (t1: T1, t2: __, t3: T3, t4: __, t5: T5): RightCurriedFunction2<T2, T4, R>;
|
|---|
| 67 | (t1: T1, t2: __, t3: __, t4: T4, t5: T5): RightCurriedFunction2<T2, T3, R>;
|
|---|
| 68 | (t1: T1, t2: T2, t3: T3, t4: T4, t5: __): RightCurriedFunction1<T5, R>;
|
|---|
| 69 | (t1: T1, t2: T2, t3: T3, t4: __, t5: T5): RightCurriedFunction1<T4, R>;
|
|---|
| 70 | (t1: T1, t2: T2, t3: __, t4: T4, t5: T5): RightCurriedFunction1<T3, R>;
|
|---|
| 71 | (t1: T1, t2: __, t3: T3, t4: T4, t5: T5): RightCurriedFunction1<T2, R>;
|
|---|
| 72 | (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5): R;
|
|---|
| 73 | }
|
|---|
| 74 | declare function curryRight<T1, R>(func: (t1: T1) => R, arity?: number): RightCurriedFunction1<T1, R>;
|
|---|
| 75 | declare function curryRight<T1, T2, R>(func: (t1: T1, t2: T2) => R, arity?: number): RightCurriedFunction2<T1, T2, R>;
|
|---|
| 76 | declare function curryRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arity?: number): RightCurriedFunction3<T1, T2, T3, R>;
|
|---|
| 77 | declare function curryRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arity?: number): RightCurriedFunction4<T1, T2, T3, T4, R>;
|
|---|
| 78 | declare function curryRight<T1, T2, T3, T4, T5, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R, arity?: number): RightCurriedFunction5<T1, T2, T3, T4, T5, R>;
|
|---|
| 79 | declare function curryRight(func: (...args: any[]) => any, arity?: number): (...args: any[]) => any;
|
|---|
| 80 | declare namespace curryRight {
|
|---|
| 81 | var placeholder: typeof curryRightPlaceholder;
|
|---|
| 82 | }
|
|---|
| 83 | declare const curryRightPlaceholder: unique symbol;
|
|---|
| 84 |
|
|---|
| 85 | export { curryRight };
|
|---|