Merge pull request #30671 from BendingBender/p-defer

Correct return types for p-defer
This commit is contained in:
Andrew Casey
2018-12-03 15:13:56 -08:00
committed by GitHub
2 changed files with 15 additions and 14 deletions
+9 -8
View File
@@ -1,16 +1,17 @@
// Type definitions for p-defer 1.0
// Project: https://github.com/sindresorhus/p-defer
// Definitions by: Sam Verschueren <https://github.com/SamVerschueren>
// BendingBender <https://github.com/BendingBender>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
declare namespace pDefer {
interface DeferredPromise<T> {
resolve<U>(value?: U | PromiseLike<U>): Promise<U>;
reject(reason: any): Promise<never>;
promise: Promise<T>;
}
}
export = pDefer;
declare function pDefer<T>(): pDefer.DeferredPromise<T>;
export = pDefer;
declare namespace pDefer {
interface DeferredPromise<T> {
resolve(value?: T | PromiseLike<T>): void;
reject(reason: any): void;
promise: Promise<T>;
}
}
+6 -6
View File
@@ -1,13 +1,13 @@
import pDefer = require('p-defer');
function delay(deferred: pDefer.DeferredPromise<string>, ms: number) {
function delay(deferred: pDefer.DeferredPromise<string>, ms: number) {
setTimeout(deferred.resolve, ms, '🦄');
return deferred.promise;
}
let s: string;
async function f() { s = await delay(pDefer<string>(), 100); }
const s: Promise<string> = delay(pDefer<string>(), 100);
async function u() {
const u: Promise<any> = pDefer().resolve();
}
// $ExpectType void
pDefer().resolve();
// $ExpectType void
pDefer().reject('oh no');