From a9752fc8fd9650803f1b5c29ff5d7b13f402f153 Mon Sep 17 00:00:00 2001 From: John Reilly Date: Tue, 19 Nov 2013 11:39:58 +0000 Subject: [PATCH] jQuery:Added generic always/done/fail/progress --- jquery/jquery-tests.ts | 12 ++++++++++++ jquery/jquery.d.ts | 6 ++++++ 2 files changed, 18 insertions(+) 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;