diff --git a/types/defer-promise/defer-promise-tests.ts b/types/defer-promise/defer-promise-tests.ts new file mode 100644 index 0000000000..cdf80657f9 --- /dev/null +++ b/types/defer-promise/defer-promise-tests.ts @@ -0,0 +1,23 @@ +import defer = require('defer-promise'); + +// $ExpectType Deferred +const a = defer(); +// $ExpectType void +a.resolve(5); +// $ExpectError +a.resolve('foo'); +// $ExpectError +a.resolve(); + +// $ExpectType Deferred +const b = defer(); +// $ExpectType void +b.resolve(); +// $ExpectError +b.resolve(5); + +const c: DeferPromise.Deferred = defer(); +// $ExpectType void +c.resolve('foo'); +// $ExpectType Promise +c.promise; diff --git a/types/defer-promise/index.d.ts b/types/defer-promise/index.d.ts new file mode 100644 index 0000000000..8516e63b30 --- /dev/null +++ b/types/defer-promise/index.d.ts @@ -0,0 +1,21 @@ +// Type definitions for defer-promise 1.0 +// Project: https://github.com/75lb/defer-promise#readme +// Definitions by: Niklas Fiekas +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.1 + +// tslint:disable-next-line no-unnecessary-generics +declare function defer(): DeferPromise.Deferred; + +export = defer; + +declare global { + namespace DeferPromise { + interface Deferred { + promise: Promise; + resolve(value: T | PromiseLike): void; + resolve(this: Deferred): void; + reject(reason?: any): void; + } + } +} diff --git a/types/defer-promise/tsconfig.json b/types/defer-promise/tsconfig.json new file mode 100644 index 0000000000..1aaa667626 --- /dev/null +++ b/types/defer-promise/tsconfig.json @@ -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" + ] +} diff --git a/types/defer-promise/tslint.json b/types/defer-promise/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/defer-promise/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }