diff --git a/jquery/jquery-tests.ts b/jquery/jquery-tests.ts index d76613e2da..9e1649ea9a 100644 --- a/jquery/jquery-tests.ts +++ b/jquery/jquery-tests.ts @@ -2296,6 +2296,8 @@ function test_EventIsCallable() { var ev = jQuery.Event('click'); } -var f1: JQueryPromise = $.when("fetch"); +$.when(3, "asdf").then(x => x.asdf, x => x.length); // is type JQueryPromise + +var f1 = $.when("fetch"); // Is type JQueryPromise var f2: JQueryPromise = f1.then(s => [s, s]); var f3: JQueryPromise = f2.then(v => 3); diff --git a/jquery/jquery.d.ts b/jquery/jquery.d.ts index 67851c859e..20def68779 100644 --- a/jquery/jquery.d.ts +++ b/jquery/jquery.d.ts @@ -105,11 +105,11 @@ interface JQueryPromise { then(onFulfill: (value: T) => U, onReject?: (...reasons) => JQueryGenericPromise, onProgress?: (...progression) => any): JQueryPromise; then(onFulfill: (value: T) => JQueryGenericPromise, onReject?: (...reasons) => JQueryGenericPromise, onProgress?: (...progression) => any): JQueryPromise; - /* Because JQuery Promises Suck */ - then(onFulfill: (...args) => U, onReject?: (...reasons) => U, onProgress?: (...progression) => any): JQueryPromise; - then(onFulfill: (...args) => JQueryGenericPromise, onReject?: (...reasons) => U, onProgress?: (...progression) => any): JQueryPromise; - then(onFulfill: (...args) => U, onReject?: (...reasons) => JQueryGenericPromise, onProgress?: (...progression) => any): JQueryPromise; - then(onFulfill: (...args) => JQueryGenericPromise, onReject?: (...reasons) => JQueryGenericPromise, onProgress?: (...progression) => any): JQueryPromise; + // Because JQuery Promises Suck + then(onFulfill: (...values) => U, onReject?: (...reasons) => U, onProgress?: (...progression) => any): JQueryPromise; + then(onFulfill: (...values) => JQueryGenericPromise, onReject?: (...reasons) => U, onProgress?: (...progression) => any): JQueryPromise; + then(onFulfill: (...values) => U, onReject?: (...reasons) => JQueryGenericPromise, onProgress?: (...progression) => any): JQueryPromise; + then(onFulfill: (...values) => JQueryGenericPromise, onReject?: (...reasons) => JQueryGenericPromise, onProgress?: (...progression) => any): JQueryPromise; } /* @@ -265,7 +265,8 @@ interface JQueryStatic { noConflict(removeAll?: boolean): Object; - when(...deferreds: T[]): JQueryPromise; + when(...deferreds: T[]): JQueryPromise; + when(...deferreds: any[]): JQueryPromise; // CSS css(e: any, propertyName: string, value?: any);