|
| 1 | +//// [awaitedTypeJQuery.ts] |
| 2 | +/// <reference lib="dom" /> |
| 3 | + |
| 4 | +interface Thenable<T> extends PromiseLike<T> { } |
| 5 | + |
| 6 | +// JQuery's Promise type |
| 7 | +interface PromiseBase<TR, TJ, TN, |
| 8 | + UR, UJ, UN, |
| 9 | + VR, VJ, VN, |
| 10 | + SR, SJ, SN> { |
| 11 | + then<ARD = never, AJD = never, AND = never, |
| 12 | + BRD = never, BJD = never, BND = never, |
| 13 | + CRD = never, CJD = never, CND = never, |
| 14 | + RRD = never, RJD = never, RND = never, |
| 15 | + ARF = never, AJF = never, ANF = never, |
| 16 | + BRF = never, BJF = never, BNF = never, |
| 17 | + CRF = never, CJF = never, CNF = never, |
| 18 | + RRF = never, RJF = never, RNF = never, |
| 19 | + ARP = never, AJP = never, ANP = never, |
| 20 | + BRP = never, BJP = never, BNP = never, |
| 21 | + CRP = never, CJP = never, CNP = never, |
| 22 | + RRP = never, RJP = never, RNP = never>( |
| 23 | + doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase<ARD, AJD, AND, |
| 24 | + BRD, BJD, BND, |
| 25 | + CRD, CJD, CND, |
| 26 | + RRD, RJD, RND> | Thenable<ARD> | ARD, |
| 27 | + failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase<ARF, AJF, ANF, |
| 28 | + BRF, BJF, BNF, |
| 29 | + CRF, CJF, CNF, |
| 30 | + RRF, RJF, RNF> | Thenable<ARF> | ARF, |
| 31 | + progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase<ARP, AJP, ANP, |
| 32 | + BRP, BJP, BNP, |
| 33 | + CRP, CJP, CNP, |
| 34 | + RRP, RJP, RNP> | Thenable<ANP> | ANP): PromiseBase<ARD | ARF | ARP, AJD | AJF | AJP, AND | ANF | ANP, |
| 35 | + BRD | BRF | BRP, BJD | BJF | BJP, BND | BNF | BNP, |
| 36 | + CRD | CRF | CRP, CJD | CJF | CJP, CND | CNF | CNP, |
| 37 | + RRD | RRF | RRP, RJD | RJF | RJP, RND | RNF | RNP>; |
| 38 | + then<ARF = never, AJF = never, ANF = never, |
| 39 | + BRF = never, BJF = never, BNF = never, |
| 40 | + CRF = never, CJF = never, CNF = never, |
| 41 | + RRF = never, RJF = never, RNF = never, |
| 42 | + ARP = never, AJP = never, ANP = never, |
| 43 | + BRP = never, BJP = never, BNP = never, |
| 44 | + CRP = never, CJP = never, CNP = never, |
| 45 | + RRP = never, RJP = never, RNP = never>( |
| 46 | + doneFilter: null, |
| 47 | + failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase<ARF, AJF, ANF, |
| 48 | + BRF, BJF, BNF, |
| 49 | + CRF, CJF, CNF, |
| 50 | + RRF, RJF, RNF> | Thenable<ARF> | ARF, |
| 51 | + progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase<ARP, AJP, ANP, |
| 52 | + BRP, BJP, BNP, |
| 53 | + CRP, CJP, CNP, |
| 54 | + RRP, RJP, RNP> | Thenable<ANP> | ANP): PromiseBase<ARF | ARP, AJF | AJP, ANF | ANP, |
| 55 | + BRF | BRP, BJF | BJP, BNF | BNP, |
| 56 | + CRF | CRP, CJF | CJP, CNF | CNP, |
| 57 | + RRF | RRP, RJF | RJP, RNF | RNP>; |
| 58 | + then<ARP = never, AJP = never, ANP = never, |
| 59 | + BRP = never, BJP = never, BNP = never, |
| 60 | + CRP = never, CJP = never, CNP = never, |
| 61 | + RRP = never, RJP = never, RNP = never>( |
| 62 | + doneFilter: null, |
| 63 | + failFilter: null, |
| 64 | + progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase<ARP, AJP, ANP, |
| 65 | + BRP, BJP, BNP, |
| 66 | + CRP, CJP, CNP, |
| 67 | + RRP, RJP, RNP> | Thenable<ANP> | ANP): PromiseBase<ARP, AJP, ANP, |
| 68 | + BRP, BJP, BNP, |
| 69 | + CRP, CJP, CNP, |
| 70 | + RRP, RJP, RNP>; |
| 71 | + then<ARD = never, AJD = never, AND = never, |
| 72 | + BRD = never, BJD = never, BND = never, |
| 73 | + CRD = never, CJD = never, CND = never, |
| 74 | + RRD = never, RJD = never, RND = never, |
| 75 | + ARF = never, AJF = never, ANF = never, |
| 76 | + BRF = never, BJF = never, BNF = never, |
| 77 | + CRF = never, CJF = never, CNF = never, |
| 78 | + RRF = never, RJF = never, RNF = never>( |
| 79 | + doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase<ARD, AJD, AND, |
| 80 | + BRD, BJD, BND, |
| 81 | + CRD, CJD, CND, |
| 82 | + RRD, RJD, RND> | Thenable<ARD> | ARD, |
| 83 | + failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase<ARF, AJF, ANF, |
| 84 | + BRF, BJF, BNF, |
| 85 | + CRF, CJF, CNF, |
| 86 | + RRF, RJF, RNF> | Thenable<ARF> | ARF, |
| 87 | + progressFilter?: null): PromiseBase<ARD | ARF, AJD | AJF, AND | ANF, |
| 88 | + BRD | BRF, BJD | BJF, BND | BNF, |
| 89 | + CRD | CRF, CJD | CJF, CND | CNF, |
| 90 | + RRD | RRF, RJD | RJF, RND | RNF>; |
| 91 | + then<ARF = never, AJF = never, ANF = never, |
| 92 | + BRF = never, BJF = never, BNF = never, |
| 93 | + CRF = never, CJF = never, CNF = never, |
| 94 | + RRF = never, RJF = never, RNF = never>( |
| 95 | + doneFilter: null, |
| 96 | + failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase<ARF, AJF, ANF, |
| 97 | + BRF, BJF, BNF, |
| 98 | + CRF, CJF, CNF, |
| 99 | + RRF, RJF, RNF> | Thenable<ARF> | ARF, |
| 100 | + progressFilter?: null): PromiseBase<ARF, AJF, ANF, |
| 101 | + BRF, BJF, BNF, |
| 102 | + CRF, CJF, CNF, |
| 103 | + RRF, RJF, RNF>; |
| 104 | + then<ARD = never, AJD = never, AND = never, |
| 105 | + BRD = never, BJD = never, BND = never, |
| 106 | + CRD = never, CJD = never, CND = never, |
| 107 | + RRD = never, RJD = never, RND = never>( |
| 108 | + doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase<ARD, AJD, AND, |
| 109 | + BRD, BJD, BND, |
| 110 | + CRD, CJD, CND, |
| 111 | + RRD, RJD, RND> | Thenable<ARD> | ARD, |
| 112 | + failFilter?: null, |
| 113 | + progressFilter?: null): PromiseBase<ARD, AJD, AND, |
| 114 | + BRD, BJD, BND, |
| 115 | + CRD, CJD, CND, |
| 116 | + RRD, RJD, RND>; |
| 117 | +} |
| 118 | + |
| 119 | +interface Promise3<TR, TJ, TN, |
| 120 | + UR, UJ, UN, |
| 121 | + VR, VJ, VN> extends PromiseBase<TR, TJ, TN, |
| 122 | + UR, UJ, UN, |
| 123 | + VR, VJ, VN, |
| 124 | + never, never, never> { } |
| 125 | + |
| 126 | +type T = Awaited<Promise3<string, Error, number, {}, string, boolean, any, Element, never>>; // string |
| 127 | + |
| 128 | +//// [awaitedTypeJQuery.js] |
| 129 | +/// <reference lib="dom" /> |
0 commit comments