mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-06-28 22:30:01 +00:00
Merge pull request #745 from AndrewGaspar/jQueryPromiseTyping
jQuery Promise Typings
This commit is contained in:
@@ -940,8 +940,7 @@ function test_deferred() {
|
||||
filtered.done(function (data) { });
|
||||
|
||||
function asyncEvent() {
|
||||
var newDeferred = new jQuery.Deferred();
|
||||
var dfd: JQueryDeferred;
|
||||
var dfd: JQueryDeferred<string> = $.Deferred<string>();
|
||||
setTimeout(function () {
|
||||
dfd.resolve("hurray");
|
||||
}, Math.floor(400 + Math.random() * 2000));
|
||||
|
||||
69
jquery/jquery.d.ts
vendored
69
jquery/jquery.d.ts
vendored
@@ -57,7 +57,7 @@ interface JQueryAjaxSettings {
|
||||
/*
|
||||
Interface for the jqXHR object
|
||||
*/
|
||||
interface JQueryXHR extends XMLHttpRequest, JQueryPromise {
|
||||
interface JQueryXHR extends XMLHttpRequest, JQueryPromise<any> {
|
||||
overrideMimeType(mimeType: string);
|
||||
abort(statusText?: string): void;
|
||||
}
|
||||
@@ -78,33 +78,61 @@ interface JQueryCallback {
|
||||
remove(...callbacks: any[]): any;
|
||||
}
|
||||
|
||||
/*
|
||||
Allows jQuery Promises to interop with non-jQuery promises
|
||||
*/
|
||||
interface JQueryGenericPromise<T> {
|
||||
then<U>(onFulfill: (value: T) => U, onReject?: (reason) => U): JQueryGenericPromise<U>;
|
||||
then<U>(onFulfill: (value: T) => JQueryGenericPromise<U>, onReject?: (reason) => U): JQueryGenericPromise<U>;
|
||||
then<U>(onFulfill: (value: T) => U, onReject?: (reason) => JQueryGenericPromise<U>): JQueryGenericPromise<U>;
|
||||
then<U>(onFulfill: (value: T) => JQueryGenericPromise<U>, onReject?: (reason) => JQueryGenericPromise<U>): JQueryGenericPromise<U>;
|
||||
}
|
||||
|
||||
/*
|
||||
Interface for the JQuery promise, part of callbacks
|
||||
*/
|
||||
interface JQueryPromise {
|
||||
always(...alwaysCallbacks: any[]): JQueryDeferred;
|
||||
done(...doneCallbacks: any[]): JQueryDeferred;
|
||||
fail(...failCallbacks: any[]): JQueryDeferred;
|
||||
pipe(doneFilter?: (x: any) => any, failFilter?: (x: any) => any, progressFilter?: (x: any) => any): JQueryPromise;
|
||||
then(doneCallbacks: any, failCallbacks?: any, progressCallbacks?: any): JQueryDeferred;
|
||||
interface JQueryPromise<T> {
|
||||
always(...alwaysCallbacks: any[]): JQueryPromise<T>;
|
||||
done(...doneCallbacks: any[]): JQueryPromise<T>;
|
||||
fail(...failCallbacks: any[]): JQueryPromise<T>;
|
||||
progress(...progressCallbacks: any[]): JQueryPromise<T>;
|
||||
|
||||
// Deprecated - given no typings
|
||||
pipe(doneFilter?: (x: any) => any, failFilter?: (x: any) => any, progressFilter?: (x: any) => any): JQueryPromise<any>;
|
||||
|
||||
then<U>(onFulfill: (value: T) => U, onReject?: (...reasons) => U, onProgress?: (...progression) => any): JQueryPromise<U>;
|
||||
then<U>(onFulfill: (value: T) => JQueryGenericPromise<U>, onReject?: (...reasons) => U, onProgress?: (...progression) => any): JQueryPromise<U>;
|
||||
then<U>(onFulfill: (value: T) => U, onReject?: (...reasons) => JQueryGenericPromise<U>, onProgress?: (...progression) => any): JQueryPromise<U>;
|
||||
then<U>(onFulfill: (value: T) => JQueryGenericPromise<U>, onReject?: (...reasons) => JQueryGenericPromise<U>, onProgress?: (...progression) => any): JQueryPromise<U>;
|
||||
|
||||
/* Because JQuery Promises Suck */
|
||||
then<U>(onFulfill: (...args) => U, onReject?: (...reasons) => U, onProgress?: (...progression) => any): JQueryPromise<U>;
|
||||
then<U>(onFulfill: (...args) => JQueryGenericPromise<U>, onReject?: (...reasons) => U, onProgress?: (...progression) => any): JQueryPromise<U>;
|
||||
then<U>(onFulfill: (...args) => U, onReject?: (...reasons) => JQueryGenericPromise<U>, onProgress?: (...progression) => any): JQueryPromise<U>;
|
||||
then<U>(onFulfill: (...args) => JQueryGenericPromise<U>, onReject?: (...reasons) => JQueryGenericPromise<U>, onProgress?: (...progression) => any): JQueryPromise<U>;
|
||||
}
|
||||
|
||||
/*
|
||||
Interface for the JQuery deferred, part of callbacks
|
||||
*/
|
||||
interface JQueryDeferred extends JQueryPromise {
|
||||
notify(...args: any[]): JQueryDeferred;
|
||||
notifyWith(context: any, ...args: any[]): JQueryDeferred;
|
||||
interface JQueryDeferred<T> extends JQueryPromise<T> {
|
||||
always(...alwaysCallbacks: any[]): JQueryDeferred<T>;
|
||||
done(...doneCallbacks: any[]): JQueryDeferred<T>;
|
||||
fail(...failCallbacks: any[]): JQueryDeferred<T>;
|
||||
progress(...progressCallbacks: any[]): JQueryDeferred<T>;
|
||||
|
||||
pipe(doneFilter?: any, failFilter?: any, progressFilter?: any): JQueryPromise;
|
||||
progress(...progressCallbacks: any[]): JQueryDeferred;
|
||||
reject(...args: any[]): JQueryDeferred;
|
||||
rejectWith(context: any, ...args: any[]): JQueryDeferred;
|
||||
resolve(...args: any[]): JQueryDeferred;
|
||||
resolveWith(context: any, ...args: any[]): JQueryDeferred;
|
||||
notify(...args: any[]): JQueryDeferred<T>;
|
||||
notifyWith(context: any, ...args: any[]): JQueryDeferred<T>;
|
||||
|
||||
reject(...args: any[]): JQueryDeferred<T>;
|
||||
rejectWith(context: any, ...args: any[]): JQueryDeferred<T>;
|
||||
|
||||
resolve(val: T): JQueryDeferred<T>;
|
||||
resolve(...args: any[]): JQueryDeferred<T>;
|
||||
resolveWith(context: any, ...args: any[]): JQueryDeferred<T>;
|
||||
state(): string;
|
||||
then(doneCallbacks: any, failCallbacks?: any, progressCallbacks?: any): JQueryDeferred;
|
||||
promise(target?: any): JQueryPromise;
|
||||
|
||||
promise(target?: any): JQueryPromise<T>;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -260,10 +288,7 @@ interface JQueryStatic {
|
||||
removeData(element: Element, name?: string): JQuery;
|
||||
|
||||
// Deferred
|
||||
Deferred: {
|
||||
(beforeStart?: (deferred: JQueryDeferred) => any): JQueryDeferred;
|
||||
new (beforeStart?: (deferred: JQueryDeferred) => any): JQueryDeferred;
|
||||
};
|
||||
Deferred<T>(beforeStart?: (deferred: JQueryDeferred<T>) => any): JQueryDeferred<T>;
|
||||
|
||||
// Effects
|
||||
fx: { tick: () => void; interval: number; stop: () => void; speeds: { slow: number; fast: number; }; off: boolean; step: any; };
|
||||
|
||||
@@ -73,10 +73,11 @@ Q<number[]>(arrayPromise) // type specification required
|
||||
.then<number>(returnsNumPromise) // requires specification
|
||||
.then(num => num.toFixed());
|
||||
|
||||
declare var jPromise: JQueryPromise;
|
||||
declare var jPromise: JQueryPromise<string>;
|
||||
|
||||
// if jQuery promises definition supported generics, this could be more interesting example
|
||||
Q<any>(jPromise).then((val) => val.toExponential());
|
||||
Q<string>(jPromise).then(str => str.split(','));
|
||||
jPromise.then<number>(returnsNumPromise);
|
||||
|
||||
declare var promiseArray: Q.IPromise<number>[];
|
||||
var qPromiseArray = promiseArray.map(p => Q<number>(p));
|
||||
|
||||
Reference in New Issue
Block a user