From e07dba0a0e041fb1093675b8afdb50404a5eb353 Mon Sep 17 00:00:00 2001 From: Wolfgang Faust Date: Wed, 4 Oct 2017 12:09:50 -0400 Subject: [PATCH] Add type definitions for object-map. (#20114) * Add type definitions for object-map. * Rename object-map's type variables. Per suggestion from @plantain-00 * object-map: Declare TThis type for thisArg. Per suggestion from @andy-ms. --- types/object-map/index.d.ts | 12 ++++++++++++ types/object-map/object-map-tests.ts | 18 ++++++++++++++++++ types/object-map/tsconfig.json | 22 ++++++++++++++++++++++ types/object-map/tslint.json | 1 + 4 files changed, 53 insertions(+) create mode 100644 types/object-map/index.d.ts create mode 100644 types/object-map/object-map-tests.ts create mode 100644 types/object-map/tsconfig.json create mode 100644 types/object-map/tslint.json diff --git a/types/object-map/index.d.ts b/types/object-map/index.d.ts new file mode 100644 index 0000000000..d6d0a0b59b --- /dev/null +++ b/types/object-map/index.d.ts @@ -0,0 +1,12 @@ +// Type definitions for object-map 1.0 +// Project: https://github.com/xixixao/object-map +// Definitions by: Wolfgang Faust +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare function objectMap( + target: {[k: string]: TInput}, + callback: (this: TThis, currentValue: TInput, key: string, object: {[k: string]: TInput}) => TOutput, + thisArg?: TThis +): {[k: string]: TOutput}; + +export = objectMap; diff --git a/types/object-map/object-map-tests.ts b/types/object-map/object-map-tests.ts new file mode 100644 index 0000000000..7bceef8c62 --- /dev/null +++ b/types/object-map/object-map-tests.ts @@ -0,0 +1,18 @@ +import objectMap = require('object-map'); + +const obj = {foo: 7, bar: 3, baz: -1}; + +let total = 0; +const keys: string[] = []; +objectMap(obj, (val, key) => { + total += val; + keys.push(key); +}); + +const myThis = { + mul: 2, + count: 0, +}; +objectMap(obj, function(val, key) { + this.count += this.mul * val; +}, myThis); diff --git a/types/object-map/tsconfig.json b/types/object-map/tsconfig.json new file mode 100644 index 0000000000..1282cdab5b --- /dev/null +++ b/types/object-map/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "object-map-tests.ts" + ] +} diff --git a/types/object-map/tslint.json b/types/object-map/tslint.json new file mode 100644 index 0000000000..4e88071852 --- /dev/null +++ b/types/object-map/tslint.json @@ -0,0 +1 @@ +{"extends": "dtslint/dt.json"}