From e9ca31406bf7b6741d08785a8736b932c9a73bda Mon Sep 17 00:00:00 2001 From: Ron Buckton Date: Tue, 8 Oct 2019 13:25:44 -0700 Subject: [PATCH] Ensure ts.Promise interface is based on the global Promise interface --- src/shims/promiseShim.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/shims/promiseShim.ts b/src/shims/promiseShim.ts index 5e70a091bc3..448d0dc3315 100644 --- a/src/shims/promiseShim.ts +++ b/src/shims/promiseShim.ts @@ -2,9 +2,11 @@ namespace ts { declare function setTimeout(handler: (...args: A) => void, timeout: number, ...args: A): any; + export interface Promise extends globalThis.Promise { + } + export interface PromiseConstructor extends PromiseConstructorLike { new (executor: (resolve: (value: T | PromiseLike) => void, reject: (reason: unknown) => void) => void): Promise; - prototype: Promise; resolve(value: T | PromiseLike): Promise; resolve(): Promise; reject(reason: unknown): Promise; @@ -12,13 +14,8 @@ namespace ts { race(promises: (T | PromiseLike)[]): Promise; } - export interface Promise { - then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike) | undefined | null): Promise; - catch(onrejected?: ((reason: unknown) => TResult | PromiseLike) | undefined | null): Promise; - } - export function createPromiseShim(): PromiseConstructor { - class Promise { + class Promise implements ts.Promise { private _state: "pending" | "fulfilled" | "rejected" = "pending"; private _result: unknown; private _reactions: PromiseReaction[] = [];