From bb0f9c9ee71ab5e0ec0e8cce7a7ef65a53e742cd Mon Sep 17 00:00:00 2001 From: Niklas Fiekas Date: Wed, 6 Dec 2017 00:00:06 +0100 Subject: [PATCH] Add types for defer-promise --- types/defer-promise/defer-promise-tests.ts | 23 +++++++++++++++++++++ types/defer-promise/index.d.ts | 21 +++++++++++++++++++ types/defer-promise/tsconfig.json | 24 ++++++++++++++++++++++ types/defer-promise/tslint.json | 1 + 4 files changed, 69 insertions(+) create mode 100644 types/defer-promise/defer-promise-tests.ts create mode 100644 types/defer-promise/index.d.ts create mode 100644 types/defer-promise/tsconfig.json create mode 100644 types/defer-promise/tslint.json 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" }