mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-07 22:38:13 +08:00
[jquery] Make JQuery.Promise and JQuery.Promise3 compatible with Promise.
This commit is contained in:
10
types/jquery/index.d.ts
vendored
10
types/jquery/index.d.ts
vendored
@@ -37,6 +37,8 @@ declare const $: JQueryStatic;
|
||||
|
||||
// Used by JQuery.Event
|
||||
type _Event = Event;
|
||||
// Used by JQuery.Promise3 and JQuery.Promise
|
||||
type _Promise<T> = Promise<T>;
|
||||
|
||||
interface JQueryStatic<TElement extends Node = HTMLElement> {
|
||||
/**
|
||||
@@ -6281,7 +6283,7 @@ declare namespace JQuery {
|
||||
*/
|
||||
interface Promise3<TR, TJ, TN,
|
||||
UR, UJ, UN,
|
||||
VR, VJ, VN> extends PromiseLike<TR> {
|
||||
VR, VJ, VN> extends _Promise<TR>, PromiseLike<TR> {
|
||||
/**
|
||||
* Add handlers to be called when the Deferred object is either resolved or rejected.
|
||||
*
|
||||
@@ -6685,9 +6687,9 @@ declare namespace JQuery {
|
||||
catch<ARF = never, AJF = never, ANF = never,
|
||||
BRF = never, BJF = never, BNF = never,
|
||||
CRF = never, CJF = never, CNF = never>
|
||||
(failFilter: (t: TJ, u: UJ, v: VJ) => Promise3<ARF, AJF, ANF,
|
||||
(failFilter?: ((t: TJ, u: UJ, v: VJ) => Promise3<ARF, AJF, ANF,
|
||||
BRF, BJF, BNF,
|
||||
CRF, CJF, CNF> | Thenable<ARF> | ARF): Promise3<ARF, AJF, ANF,
|
||||
CRF, CJF, CNF> | Thenable<ARF> | ARF) | undefined | null): Promise3<ARF, AJF, ANF,
|
||||
BRF, BJF, BNF,
|
||||
CRF, CJF, CNF>;
|
||||
}
|
||||
@@ -6709,7 +6711,7 @@ declare namespace JQuery {
|
||||
*
|
||||
* @see {@link http://api.jquery.com/Types/#Promise}
|
||||
*/
|
||||
interface Promise<TR, TJ = any, TN = any> extends PromiseLike<TR> {
|
||||
interface Promise<TR, TJ = any, TN = any> extends _Promise<TR>, PromiseLike<TR> {
|
||||
/**
|
||||
* Add handlers to be called when the Deferred object is either resolved or rejected.
|
||||
*
|
||||
|
||||
@@ -6512,6 +6512,8 @@ function _Event() {
|
||||
}
|
||||
|
||||
function jqXHR() {
|
||||
const p: JQuery.jqXHR = {} as any;
|
||||
|
||||
function always() {
|
||||
// $ExpectType jqXHR<any>
|
||||
$.ajax('/echo/json').always((data_jqXHR, textStatus, jqXHR_errorThrown) => {
|
||||
@@ -6763,6 +6765,10 @@ function jqXHR() {
|
||||
errorThrown;
|
||||
});
|
||||
}
|
||||
|
||||
function compatibleWithPromise(): Promise<any> {
|
||||
return p;
|
||||
}
|
||||
}
|
||||
|
||||
function Promise3() {
|
||||
@@ -7145,6 +7151,15 @@ function Promise3() {
|
||||
$.ajax('/echo/json').catch(() => {
|
||||
return $.ajax('/echo/json');
|
||||
});
|
||||
|
||||
// $ExpectType Promise3<never, never, never, never, never, never, never, never, never>
|
||||
$.ajax('/echo/json').catch(undefined);
|
||||
|
||||
// $ExpectType Promise3<never, never, never, never, never, never, never, never, never>
|
||||
$.ajax('/echo/json').catch(null);
|
||||
|
||||
// $ExpectType Promise3<never, never, never, never, never, never, never, never, never>
|
||||
$.ajax('/echo/json').catch();
|
||||
}
|
||||
|
||||
// As argument to PromiseLike parameter
|
||||
@@ -7157,6 +7172,10 @@ function Promise3() {
|
||||
async function testAsync(p: JQuery.Promise3<string, {}, {}, {}, {}, {}, {}, {}, {}>): Promise<string> {
|
||||
return await p;
|
||||
}
|
||||
|
||||
function compatibleWithPromise(): Promise<any> {
|
||||
return p;
|
||||
}
|
||||
}
|
||||
|
||||
function Promise2(p: JQuery.Promise2<string, Error, number, JQuery, string, boolean>) {
|
||||
@@ -7292,6 +7311,10 @@ function Promise2(p: JQuery.Promise2<string, Error, number, JQuery, string, bool
|
||||
async function testAsync(p: JQuery.Promise2<string, {}, {}, {}, {}, {}>): Promise<string> {
|
||||
return await p;
|
||||
}
|
||||
|
||||
function compatibleWithPromise(): Promise<any> {
|
||||
return p;
|
||||
}
|
||||
}
|
||||
|
||||
function _Promise(p: JQuery.Promise<string, Error, number>) {
|
||||
@@ -7404,4 +7427,8 @@ function _Promise(p: JQuery.Promise<string, Error, number>) {
|
||||
async function testAsync(p: JQuery.Promise<string, Error, number>): Promise<string> {
|
||||
return await p;
|
||||
}
|
||||
|
||||
function compatibleWithPromise(): Promise<any> {
|
||||
return p;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user