Closed as not planned
Description
🔎 Search Terms
overloads, jquery
🕗 Version & Regression Information
This is a crash in jquery tests on Definitely Typed https://dev.azure.com/definitelytyped/DefinitelyTyped/_build/results?buildId=162795&view=logs&j=9d906afe-3eb5-5d79-316d-86f3f3fa360c&t=09716206-abc7-5ba2-2ea2-6c6fe97a3aad because of #54448
⏯ Playground Link
💻 Code
interface J1 { kind: 'J1'; }
interface J2 { kind: 'J2'; }
interface J3 { kind: 'J3'; }
interface J4 { kind: 'J4'; }
interface J5 { kind: 'J5'; }
interface J6 { kind: 'J6'; }
interface J7 { kind: 'J7'; }
interface J8 { kind: 'J8'; }
interface J9 { kind: 'J9'; }
interface Thenable<T> extends PromiseLike<T> { }
interface PromiseBase<TR, TJ, TN,
UR, UJ, UN,
VR, VJ, VN,
SR, SJ, SN> {
then<ARD = never, AJD = never, AND = never,
BRD = never, BJD = never, BND = never,
CRD = never, CJD = never, CND = never,
RRD = never, RJD = never, RND = never,
ARF = never, AJF = never, ANF = never,
BRF = never, BJF = never, BNF = never,
CRF = never, CJF = never, CNF = never,
RRF = never, RJF = never, RNF = never,
ARP = never, AJP = never, ANP = never,
BRP = never, BJP = never, BNP = never,
CRP = never, CJP = never, CNP = never,
RRP = never, RJP = never, RNP = never>(
doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase<ARD, AJD, AND,
BRD, BJD, BND,
CRD, CJD, CND,
RRD, RJD, RND> | Thenable<ARD> | ARD,
failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase<ARF, AJF, ANF,
BRF, BJF, BNF,
CRF, CJF, CNF,
RRF, RJF, RNF> | Thenable<ARF> | ARF,
progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase<ARP, AJP, ANP,
BRP, BJP, BNP,
CRP, CJP, CNP,
RRP, RJP, RNP> | Thenable<ANP> | ANP): PromiseBase<ARD | ARF | ARP, AJD | AJF | AJP, AND | ANF | ANP,
BRD | BRF | BRP, BJD | BJF | BJP, BND | BNF | BNP,
CRD | CRF | CRP, CJD | CJF | CJP, CND | CNF | CNP,
RRD | RRF | RRP, RJD | RJF | RJP, RND | RNF | RNP>;
then<ARD = never, AJD = never, AND = never,
BRD = never, BJD = never, BND = never,
CRD = never, CJD = never, CND = never,
RRD = never, RJD = never, RND = never,
ARF = never, AJF = never, ANF = never,
BRF = never, BJF = never, BNF = never,
CRF = never, CJF = never, CNF = never,
RRF = never, RJF = never, RNF = never>(
doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase<ARD, AJD, AND,
BRD, BJD, BND,
CRD, CJD, CND,
RRD, RJD, RND> | Thenable<ARD> | ARD,
failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase<ARF, AJF, ANF,
BRF, BJF, BNF,
CRF, CJF, CNF,
RRF, RJF, RNF> | Thenable<ARF> | ARF,
progressFilter?: null): PromiseBase<ARD | ARF, AJD | AJF, AND | ANF,
BRD | BRF, BJD | BJF, BND | BNF,
CRD | CRF, CJD | CJF, CND | CNF,
RRD | RRF, RJD | RJF, RND | RNF>;
then<ARD = never, AJD = never, AND = never,
BRD = never, BJD = never, BND = never,
CRD = never, CJD = never, CND = never,
RRD = never, RJD = never, RND = never>(
doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase<ARD, AJD, AND,
BRD, BJD, BND,
CRD, CJD, CND,
RRD, RJD, RND> | Thenable<ARD> | ARD,
failFilter?: null,
progressFilter?: null): PromiseBase<ARD, AJD, AND,
BRD, BJD, BND,
CRD, CJD, CND,
RRD, RJD, RND>;
}
interface Promise3<TR, TJ, TN,
UR, UJ, UN,
VR, VJ, VN> extends PromiseBase<TR, TJ, TN,
UR, UJ, UN,
VR, VJ, VN,
never, never, never> { }
const p:Promise3<string, Error, number, string, string, boolean, any, Element, never> = {} as any;
const p1:Promise3<J1, J2, J3, J4, J5, J6, J7, J8, J9> = {} as any;
const p2:Promise3<J2, J3, J4, J5, J6, J7, J8, J9, J1> = {} as any;
const p3:Promise3<J3, J4, J5, J6, J7, J8, J9, J1, J2> = {} as any;
const t1: Thenable<J1> = {} as any;
const t2: Thenable<J2> = {} as any;
const t3: Thenable<J3> = {} as any;
function doneFilter_failFilter() {
{
const q = p.then(() => {
return t1;
}, () => {
return t2;
})
q.then((a) => {
a; // $ExpectType J1 | J2
}, (a) => {
a; // $ExpectType never but returns any
}, (a, b, c) => {
a; // $ExpectType never
b; // $ExpectType never
c; // $ExpectType never
});
}
}
🙁 Actual behavior
Type returned for a
is any
🙂 Expected behavior
Type for a
should be never
Additional information about the issue
No response