Declare namespace for p-defer (#25917)

This commit is contained in:
Dongwoon Son
2018-05-30 07:59:38 +09:00
committed by Mohamed Hegazy
parent 5d98d9b7fd
commit faf3591869
2 changed files with 9 additions and 8 deletions

View File

@@ -3,12 +3,14 @@
// Definitions by: Sam Verschueren <https://github.com/SamVerschueren>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
interface DeferredPromise<T> {
resolve<U>(value: U | PromiseLike<U>): Promise<U>;
reject(reason: any): Promise<never>;
promise: Promise<T>;
declare namespace pDefer {
interface DeferredPromise<T> {
resolve<U>(value: U | PromiseLike<U>): Promise<U>;
reject(reason: any): Promise<never>;
promise: Promise<T>;
}
}
declare function pDefer<T>(): DeferredPromise<T>;
declare function pDefer<T>(): pDefer.DeferredPromise<T>;
export = pDefer;

View File

@@ -1,10 +1,9 @@
import pDefer = require('p-defer');
function delay(ms: number) {
const deferred = pDefer<string>();
function delay(deferred: pDefer.DeferredPromise<string>, ms: number) {
setTimeout(deferred.resolve, ms, '🦄');
return deferred.promise;
}
let s: string;
async function f() { s = await delay(100); }
async function f() { s = await delay(pDefer<string>(), 100); }