export function withResolvers = PromiseLike>() { let resolve: (value: T | PromiseLike) => void, reject: (reason?: any) => void; const promise = new Promise((res, rej) => { resolve = res; reject = rej; }) as unknown as P; // @ts-ignore return { promise, resolve, reject }; }