diff --git a/jquery/jquery-tests.ts b/jquery/jquery-tests.ts index fa91dc6b6..f0da8f49b 100644 --- a/jquery/jquery-tests.ts +++ b/jquery/jquery-tests.ts @@ -898,6 +898,18 @@ function test_dblclick() { } function test_deferred() { + + function returnPromise(): JQueryPromise<(data: { MyString: string; MyNumber: number; }, textStatus: string, jqXHR: JQueryXHR) => any> { + return $.ajax("test.php"); + } + var x = returnPromise(); + x.done((data, textStatus, jqXHR) => { + var myNumber: number = data.MyNumber; + var myString: string = data.MyString; + var theTextStatus: string = textStatus; + var thejqXHR: JQueryXHR = jqXHR; + }); + $.get("test.php").always(function () { alert("$.get completed with success or error callback arguments"); }); diff --git a/jquery/jquery.d.ts b/jquery/jquery.d.ts index 332ee75da..c624299d1 100644 --- a/jquery/jquery.d.ts +++ b/jquery/jquery.d.ts @@ -94,6 +94,12 @@ interface JQueryGenericPromise { Interface for the JQuery promise, part of callbacks */ interface JQueryPromise { + // Generic versions of callbacks + always(...alwaysCallbacks: T[]): JQueryPromise; + done(...doneCallbacks: T[]): JQueryPromise; + fail(...failCallbacks: T[]): JQueryPromise; + progress(...progressCallbacks: T[]): JQueryPromise; + always(...alwaysCallbacks: any[]): JQueryPromise; done(...doneCallbacks: any[]): JQueryPromise; fail(...failCallbacks: any[]): JQueryPromise;