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[] = [];