diff --git a/types/bluebird/bluebird-tests.ts b/types/bluebird/bluebird-tests.ts index b1b766a04f..e616ae3f85 100644 --- a/types/bluebird/bluebird-tests.ts +++ b/types/bluebird/bluebird-tests.ts @@ -388,7 +388,7 @@ fooProm = fooProm.catch(CustomError, reason => { const booObject1 = new CustomError1(); const booObject2 = [400, 500]; - const booObject3 = "Error"; + const booObject3 = ["Error1", "Error2"]; const booObject4 = {code: 400}; const booObject5: any = null; diff --git a/types/bluebird/index.d.ts b/types/bluebird/index.d.ts index 75c9d6701f..8482e5fe6e 100644 --- a/types/bluebird/index.d.ts +++ b/types/bluebird/index.d.ts @@ -69,247 +69,247 @@ declare class Bluebird implements PromiseLike, Bluebird.Inspection { * TODO: disallow non-objects */ catch( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, - filter2: (new (...args: any[]) => E2) | ((error: E2) => boolean) | E2, - filter3: (new (...args: any[]) => E3) | ((error: E3) => boolean) | E3, - filter4: (new (...args: any[]) => E4) | ((error: E4) => boolean) | E4, - filter5: (new (...args: any[]) => E5) | ((error: E5) => boolean) | E5, + filter1: (new (...args: any[]) => E1), + filter2: (new (...args: any[]) => E2), + filter3: (new (...args: any[]) => E3), + filter4: (new (...args: any[]) => E4), + filter5: (new (...args: any[]) => E5), onReject: (error: E1 | E2 | E3 | E4 | E5) => R | PromiseLike | void | PromiseLike, ): Bluebird; catch( - filter1: ((error: E1) => boolean) | E1, - filter2: ((error: E2) => boolean) | E2, - filter3: ((error: E3) => boolean) | E3, - filter4: ((error: E4) => boolean) | E4, - filter5: ((error: E5) => boolean) | E5, + filter1: ((error: E1) => boolean) | (E1 & object), + filter2: ((error: E2) => boolean) | (E2 & object), + filter3: ((error: E3) => boolean) | (E3 & object), + filter4: ((error: E4) => boolean) | (E4 & object), + filter5: ((error: E5) => boolean) | (E5 & object), onReject: (error: E1 | E2 | E3 | E4 | E5) => R | PromiseLike | void | PromiseLike, ): Bluebird; caught( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, - filter2: (new (...args: any[]) => E2) | ((error: E2) => boolean) | E2, - filter3: (new (...args: any[]) => E3) | ((error: E3) => boolean) | E3, - filter4: (new (...args: any[]) => E4) | ((error: E4) => boolean) | E4, - filter5: (new (...args: any[]) => E5) | ((error: E5) => boolean) | E5, + filter1: (new (...args: any[]) => E1), + filter2: (new (...args: any[]) => E2), + filter3: (new (...args: any[]) => E3), + filter4: (new (...args: any[]) => E4), + filter5: (new (...args: any[]) => E5), onReject: (error: E1 | E2 | E3 | E4 | E5) => R | PromiseLike | void | PromiseLike, ): Bluebird; caught( - filter1: ((error: E1) => boolean) | E1, - filter2: ((error: E2) => boolean) | E2, - filter3: ((error: E3) => boolean) | E3, - filter4: ((error: E4) => boolean) | E4, - filter5: ((error: E5) => boolean) | E5, + filter1: ((error: E1) => boolean) | (E1 & object), + filter2: ((error: E2) => boolean) | (E2 & object), + filter3: ((error: E3) => boolean) | (E3 & object), + filter4: ((error: E4) => boolean) | (E4 & object), + filter5: ((error: E5) => boolean) | (E5 & object), onReject: (error: E1 | E2 | E3 | E4 | E5) => R | PromiseLike | void | PromiseLike, ): Bluebird; catch( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, - filter2: (new (...args: any[]) => E2) | ((error: E2) => boolean) | E2, - filter3: (new (...args: any[]) => E3) | ((error: E3) => boolean) | E3, - filter4: (new (...args: any[]) => E4) | ((error: E4) => boolean) | E4, - filter5: (new (...args: any[]) => E5) | ((error: E5) => boolean) | E5, + filter1: (new (...args: any[]) => E1), + filter2: (new (...args: any[]) => E2), + filter3: (new (...args: any[]) => E3), + filter4: (new (...args: any[]) => E4), + filter5: (new (...args: any[]) => E5), onReject: (error: E1 | E2 | E3 | E4 | E5) => U | PromiseLike | void | PromiseLike, ): Bluebird; catch( - filter1: ((error: E1) => boolean) | E1, - filter2: ((error: E2) => boolean) | E2, - filter3: ((error: E3) => boolean) | E3, - filter4: ((error: E4) => boolean) | E4, - filter5: ((error: E5) => boolean) | E5, + filter1: ((error: E1) => boolean) | (E1 & object), + filter2: ((error: E2) => boolean) | (E2 & object), + filter3: ((error: E3) => boolean) | (E3 & object), + filter4: ((error: E4) => boolean) | (E4 & object), + filter5: ((error: E5) => boolean) | (E5 & object), onReject: (error: E1 | E2 | E3 | E4 | E5) => U | PromiseLike, ): Bluebird; caught( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, - filter2: (new (...args: any[]) => E2) | ((error: E2) => boolean) | E2, - filter3: (new (...args: any[]) => E3) | ((error: E3) => boolean) | E3, - filter4: (new (...args: any[]) => E4) | ((error: E4) => boolean) | E4, - filter5: (new (...args: any[]) => E5) | ((error: E5) => boolean) | E5, + filter1: (new (...args: any[]) => E1), + filter2: (new (...args: any[]) => E2), + filter3: (new (...args: any[]) => E3), + filter4: (new (...args: any[]) => E4), + filter5: (new (...args: any[]) => E5), onReject: (error: E1 | E2 | E3 | E4 | E5) => U | PromiseLike, ): Bluebird; caught( - filter1: ((error: E1) => boolean) | E1, - filter2: ((error: E2) => boolean) | E2, - filter3: ((error: E3) => boolean) | E3, - filter4: ((error: E4) => boolean) | E4, - filter5: ((error: E5) => boolean) | E5, + filter1: ((error: E1) => boolean) | (E1 & object), + filter2: ((error: E2) => boolean) | (E2 & object), + filter3: ((error: E3) => boolean) | (E3 & object), + filter4: ((error: E4) => boolean) | (E4 & object), + filter5: ((error: E5) => boolean) | (E5 & object), onReject: (error: E1 | E2 | E3 | E4 | E5) => U | PromiseLike, ): Bluebird; catch( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, - filter2: (new (...args: any[]) => E2) | ((error: E2) => boolean) | E2, - filter3: (new (...args: any[]) => E3) | ((error: E3) => boolean) | E3, - filter4: (new (...args: any[]) => E4) | ((error: E4) => boolean) | E4, + filter1: (new (...args: any[]) => E1), + filter2: (new (...args: any[]) => E2), + filter3: (new (...args: any[]) => E3), + filter4: (new (...args: any[]) => E4), onReject: (error: E1 | E2 | E3 | E4) => R | PromiseLike | void | PromiseLike, ): Bluebird; catch( - filter1: ((error: E1) => boolean) | E1, - filter2: ((error: E2) => boolean) | E2, - filter3: ((error: E3) => boolean) | E3, - filter4: ((error: E4) => boolean) | E4, + filter1: ((error: E1) => boolean) | (E1 & object), + filter2: ((error: E2) => boolean) | (E2 & object), + filter3: ((error: E3) => boolean) | (E3 & object), + filter4: ((error: E4) => boolean) | (E4 & object), onReject: (error: E1 | E2 | E3 | E4) => R | PromiseLike | void | PromiseLike, ): Bluebird; caught( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, - filter2: (new (...args: any[]) => E2) | ((error: E2) => boolean) | E2, - filter3: (new (...args: any[]) => E3) | ((error: E3) => boolean) | E3, - filter4: (new (...args: any[]) => E4) | ((error: E4) => boolean) | E4, + filter1: (new (...args: any[]) => E1), + filter2: (new (...args: any[]) => E2), + filter3: (new (...args: any[]) => E3), + filter4: (new (...args: any[]) => E4), onReject: (error: E1 | E2 | E3 | E4) => R | PromiseLike | void | PromiseLike, ): Bluebird; caught( - filter1: ((error: E1) => boolean) | E1, - filter2: ((error: E2) => boolean) | E2, - filter3: ((error: E3) => boolean) | E3, - filter4: ((error: E4) => boolean) | E4, + filter1: ((error: E1) => boolean) | (E1 & object), + filter2: ((error: E2) => boolean) | (E2 & object), + filter3: ((error: E3) => boolean) | (E3 & object), + filter4: ((error: E4) => boolean) | (E4 & object), onReject: (error: E1 | E2 | E3 | E4) => R | PromiseLike | void | PromiseLike, ): Bluebird; catch( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, - filter2: (new (...args: any[]) => E2) | ((error: E2) => boolean) | E2, - filter3: (new (...args: any[]) => E3) | ((error: E3) => boolean) | E3, - filter4: (new (...args: any[]) => E4) | ((error: E4) => boolean) | E4, + filter1: (new (...args: any[]) => E1), + filter2: (new (...args: any[]) => E2), + filter3: (new (...args: any[]) => E3), + filter4: (new (...args: any[]) => E4), onReject: (error: E1 | E2 | E3 | E4) => U | PromiseLike, ): Bluebird; catch( - filter1: ((error: E1) => boolean) | E1, - filter2: ((error: E2) => boolean) | E2, - filter3: ((error: E3) => boolean) | E3, - filter4: ((error: E4) => boolean) | E4, + filter1: ((error: E1) => boolean) | (E1 & object), + filter2: ((error: E2) => boolean) | (E2 & object), + filter3: ((error: E3) => boolean) | (E3 & object), + filter4: ((error: E4) => boolean) | (E4 & object), onReject: (error: E1 | E2 | E3 | E4) => U | PromiseLike, ): Bluebird; caught( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, - filter2: (new (...args: any[]) => E2) | ((error: E2) => boolean) | E2, - filter3: (new (...args: any[]) => E3) | ((error: E3) => boolean) | E3, - filter4: (new (...args: any[]) => E4) | ((error: E4) => boolean) | E4, + filter1: (new (...args: any[]) => E1), + filter2: (new (...args: any[]) => E2), + filter3: (new (...args: any[]) => E3), + filter4: (new (...args: any[]) => E4), onReject: (error: E1 | E2 | E3 | E4) => U | PromiseLike, ): Bluebird; caught( - filter1: ((error: E1) => boolean) | E1, - filter2: ((error: E2) => boolean) | E2, - filter3: ((error: E3) => boolean) | E3, - filter4: ((error: E4) => boolean) | E4, + filter1: ((error: E1) => boolean) | (E1 & object), + filter2: ((error: E2) => boolean) | (E2 & object), + filter3: ((error: E3) => boolean) | (E3 & object), + filter4: ((error: E4) => boolean) | (E4 & object), onReject: (error: E1 | E2 | E3 | E4) => U | PromiseLike, ): Bluebird; catch( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, - filter2: (new (...args: any[]) => E2) | ((error: E2) => boolean) | E2, - filter3: (new (...args: any[]) => E3) | ((error: E3) => boolean) | E3, + filter1: (new (...args: any[]) => E1), + filter2: (new (...args: any[]) => E2), + filter3: (new (...args: any[]) => E3), onReject: (error: E1 | E2 | E3) => R | PromiseLike | void | PromiseLike, ): Bluebird; catch( - filter1: ((error: E1) => boolean) | E1, - filter2: ((error: E2) => boolean) | E2, - filter3: ((error: E3) => boolean) | E3, + filter1: ((error: E1) => boolean) | (E1 & object), + filter2: ((error: E2) => boolean) | (E2 & object), + filter3: ((error: E3) => boolean) | (E3 & object), onReject: (error: E1 | E2 | E3) => R | PromiseLike | void | PromiseLike, ): Bluebird; caught( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, - filter2: (new (...args: any[]) => E2) | ((error: E2) => boolean) | E2, - filter3: (new (...args: any[]) => E3) | ((error: E3) => boolean) | E3, + filter1: (new (...args: any[]) => E1), + filter2: (new (...args: any[]) => E2), + filter3: (new (...args: any[]) => E3), onReject: (error: E1 | E2 | E3) => R | PromiseLike | void | PromiseLike, ): Bluebird; caught( - filter1: ((error: E1) => boolean) | E1, - filter2: ((error: E2) => boolean) | E2, - filter3: ((error: E3) => boolean) | E3, + filter1: ((error: E1) => boolean) | (E1 & object), + filter2: ((error: E2) => boolean) | (E2 & object), + filter3: ((error: E3) => boolean) | (E3 & object), onReject: (error: E1 | E2 | E3) => R | PromiseLike | void | PromiseLike, ): Bluebird; catch( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, - filter2: (new (...args: any[]) => E2) | ((error: E2) => boolean) | E2, - filter3: (new (...args: any[]) => E3) | ((error: E3) => boolean) | E3, + filter1: (new (...args: any[]) => E1), + filter2: (new (...args: any[]) => E2), + filter3: (new (...args: any[]) => E3), onReject: (error: E1 | E2 | E3) => U | PromiseLike, ): Bluebird; catch( - filter1: ((error: E1) => boolean) | E1, - filter2: ((error: E2) => boolean) | E2, - filter3: ((error: E3) => boolean) | E3, + filter1: ((error: E1) => boolean) | (E1 & object), + filter2: ((error: E2) => boolean) | (E2 & object), + filter3: ((error: E3) => boolean) | (E3 & object), onReject: (error: E1 | E2 | E3) => U | PromiseLike, ): Bluebird; caught( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, - filter2: (new (...args: any[]) => E2) | ((error: E2) => boolean) | E2, - filter3: (new (...args: any[]) => E3) | ((error: E3) => boolean) | E3, + filter1: (new (...args: any[]) => E1), + filter2: (new (...args: any[]) => E2), + filter3: (new (...args: any[]) => E3), onReject: (error: E1 | E2 | E3) => U | PromiseLike, ): Bluebird; caught( - filter1: ((error: E1) => boolean) | E1, - filter2: ((error: E2) => boolean) | E2, - filter3: ((error: E3) => boolean) | E3, + filter1: ((error: E1) => boolean) | (E1 & object), + filter2: ((error: E2) => boolean) | (E2 & object), + filter3: ((error: E3) => boolean) | (E3 & object), onReject: (error: E1 | E2 | E3) => U | PromiseLike, ): Bluebird; catch( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, - filter2: (new (...args: any[]) => E2) | ((error: E2) => boolean) | E2, + filter1: (new (...args: any[]) => E1), + filter2: (new (...args: any[]) => E2), onReject: (error: E1 | E2) => R | PromiseLike | void | PromiseLike, ): Bluebird; catch( - filter1: ((error: E1) => boolean) | E1, - filter2: ((error: E2) => boolean) | E2, + filter1: ((error: E1) => boolean) | (E1 & object), + filter2: ((error: E2) => boolean) | (E2 & object), onReject: (error: E1 | E2) => R | PromiseLike | void | PromiseLike, ): Bluebird; caught( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, - filter2: (new (...args: any[]) => E2) | ((error: E2) => boolean) | E2, + filter1: (new (...args: any[]) => E1), + filter2: (new (...args: any[]) => E2), onReject: (error: E1 | E2) => R | PromiseLike | void | PromiseLike, ): Bluebird; caught( - filter1: ((error: E1) => boolean) | E1, - filter2: ((error: E2) => boolean) | E2, + filter1: ((error: E1) => boolean) | (E1 & object), + filter2: ((error: E2) => boolean) | (E2 & object), onReject: (error: E1 | E2) => R | PromiseLike | void | PromiseLike, ): Bluebird; catch( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, - filter2: (new (...args: any[]) => E2) | ((error: E2) => boolean) | E2, + filter1: (new (...args: any[]) => E1), + filter2: (new (...args: any[]) => E2), onReject: (error: E1 | E2) => U | PromiseLike, ): Bluebird; catch( - filter1: ((error: E1) => boolean) | E1, - filter2: ((error: E2) => boolean) | E2, + filter1: ((error: E1) => boolean) | (E1 & object), + filter2: ((error: E2) => boolean) | (E2 & object), onReject: (error: E1 | E2) => U | PromiseLike, ): Bluebird; caught( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, - filter2: (new (...args: any[]) => E2) | ((error: E2) => boolean) | E2, + filter1: (new (...args: any[]) => E1), + filter2: (new (...args: any[]) => E2), onReject: (error: E1 | E2) => U | PromiseLike, ): Bluebird; caught( - filter1: ((error: E1) => boolean) | E1, - filter2: ((error: E2) => boolean) | E2, + filter1: ((error: E1) => boolean) | (E1 & object), + filter2: ((error: E2) => boolean) | (E2 & object), onReject: (error: E1 | E2) => U | PromiseLike, ): Bluebird; catch( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, + filter1: (new (...args: any[]) => E1), onReject: (error: E1) => R | PromiseLike | void | PromiseLike, ): Bluebird; catch( - filter1: ((error: E1) => boolean) | E1, + filter1: ((error: E1) => boolean) | (E1 & object), onReject: (error: E1) => R | PromiseLike | void | PromiseLike, ): Bluebird; caught( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, + filter1: (new (...args: any[]) => E1), onReject: (error: E1) => R | PromiseLike | void | PromiseLike, ): Bluebird; caught( - filter1: ((error: E1) => boolean) | E1, + filter1: ((error: E1) => boolean) | (E1 & object), onReject: (error: E1) => R | PromiseLike | void | PromiseLike, ): Bluebird; catch( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, + filter1: (new (...args: any[]) => E1), onReject: (error: E1) => U | PromiseLike, ): Bluebird; catch( - filter1: ((error: E1) => boolean) | E1, + filter1: ((error: E1) => boolean) | (E1 & object), onReject: (error: E1) => U | PromiseLike, ): Bluebird; caught( - filter1: (new (...args: any[]) => E1) | ((error: E1) => boolean) | E1, + filter1: (new (...args: any[]) => E1), onReject: (error: E1) => U | PromiseLike, ): Bluebird; caught( - filter1: ((error: E1) => boolean) | E1, + filter1: ((error: E1) => boolean) | (E1 & object), onReject: (error: E1) => U | PromiseLike, ): Bluebird;