Merge pull request #21993 from niklasf/defer-promise

Add types for defer-promise
This commit is contained in:
Bowden Kelly
2017-12-06 15:59:37 -08:00
committed by GitHub
4 changed files with 69 additions and 0 deletions
@@ -0,0 +1,23 @@
import defer = require('defer-promise');
// $ExpectType Deferred<number>
const a = defer<number>();
// $ExpectType void
a.resolve(5);
// $ExpectError
a.resolve('foo');
// $ExpectError
a.resolve();
// $ExpectType Deferred<void>
const b = defer<void>();
// $ExpectType void
b.resolve();
// $ExpectError
b.resolve(5);
const c: DeferPromise.Deferred<string> = defer();
// $ExpectType void
c.resolve('foo');
// $ExpectType Promise<string>
c.promise;
+21
View File
@@ -0,0 +1,21 @@
// Type definitions for defer-promise 1.0
// Project: https://github.com/75lb/defer-promise#readme
// Definitions by: Niklas Fiekas <https://github.com/niklasf>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.1
// tslint:disable-next-line no-unnecessary-generics
declare function defer<T>(): DeferPromise.Deferred<T>;
export = defer;
declare global {
namespace DeferPromise {
interface Deferred<T> {
promise: Promise<T>;
resolve(value: T | PromiseLike<T>): void;
resolve(this: Deferred<void>): void;
reject(reason?: any): void;
}
}
}
+24
View File
@@ -0,0 +1,24 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es5",
"es2015.Promise"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"defer-promise-tests.ts"
]
}
+1
View File
@@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }