From 28f4decb25df487b256e236c44b8e1eb75e55dd8 Mon Sep 17 00:00:00 2001 From: Dimitri Benin Date: Mon, 14 Aug 2017 20:58:16 +0200 Subject: [PATCH] [statuses] remove unnecessary any, enable strict null checks & linting (#18935) --- types/statuses/index.d.ts | 26 +++++++++++-------- types/statuses/statuses-tests.ts | 43 ++++++++++++++++---------------- types/statuses/tsconfig.json | 4 +-- types/statuses/tslint.json | 1 + 4 files changed, 40 insertions(+), 34 deletions(-) create mode 100644 types/statuses/tslint.json diff --git a/types/statuses/index.d.ts b/types/statuses/index.d.ts index f6e22d2176..30c7c186a7 100644 --- a/types/statuses/index.d.ts +++ b/types/statuses/index.d.ts @@ -1,20 +1,26 @@ -// Type definitions for statuses v1.2.1 +// Type definitions for statuses 1.3 // Project: https://github.com/jshttp/statuses // Definitions by: Tanguy Krotoff +// BendingBender // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +export = status; + +declare const status: Status & CodesToMessages & MessagesToCodes; interface Status { - [code: number]: string; - [msg: string]: any | number; - - codes: Array; - redirect: { [code: number]: boolean }; - empty: { [code: number]: boolean }; - retry: { [code: number]: boolean }; + codes: number[]; + redirect: { [code: number]: boolean | undefined }; + empty: { [code: number]: boolean | undefined }; + retry: { [code: number]: boolean | undefined }; (code: number | string): number; } -declare var status: Status; -export = status; +interface CodesToMessages { + [code: number]: string | undefined; +} + +interface MessagesToCodes { + [msg: string]: number | undefined; +} diff --git a/types/statuses/statuses-tests.ts b/types/statuses/statuses-tests.ts index 28fd02a28b..7b09f9b6ff 100644 --- a/types/statuses/statuses-tests.ts +++ b/types/statuses/statuses-tests.ts @@ -1,32 +1,31 @@ - import status = require('statuses'); -var code: number; +let code: number | undefined; -code = status(403) // => 403 -code = status('403') // => 403 -code = status('forbidden') // => 403 -code = status('Forbidden') // => 403 -code = status(306) // throws, as it's not supported by node.js +code = status(403); // => 403 +code = status('403'); // => 403 +code = status('forbidden'); // => 403 +code = status('Forbidden'); // => 403 +code = status(306); // throws, as it's not supported by node.js -var codes: Array; +let codes: number[]; codes = status.codes; -var msg: string; -msg = status[404] // => 'Not Found' +let msg: string | undefined; +msg = status[404]; // => 'Not Found' -code = status['not found'] // => 404 -code = status['Not Found'] // => 404 +code = status['not found']; // => 404 +code = status['Not Found']; // => 404 -var isRedirect: boolean; -isRedirect = status.redirect[200] // => undefined -isRedirect = status.redirect[301] // => true +let isRedirect: boolean | undefined; +isRedirect = status.redirect[200]; // => undefined +isRedirect = status.redirect[301]; // => true -var isEmpty: boolean; -isEmpty = status.empty[200] // => undefined -isEmpty = status.empty[204] // => true -isEmpty = status.empty[304] // => true +let isEmpty: boolean | undefined; +isEmpty = status.empty[200]; // => undefined +isEmpty = status.empty[204]; // => true +isEmpty = status.empty[304]; // => true -var isRetry: boolean; -isRetry = status.retry[501] // => undefined -isRetry = status.retry[503] // => true +let isRetry: boolean | undefined; +isRetry = status.retry[501]; // => undefined +isRetry = status.retry[503]; // => true diff --git a/types/statuses/tsconfig.json b/types/statuses/tsconfig.json index 28b7342180..509d34d68b 100644 --- a/types/statuses/tsconfig.json +++ b/types/statuses/tsconfig.json @@ -6,7 +6,7 @@ ], "noImplicitAny": true, "noImplicitThis": true, - "strictNullChecks": false, + "strictNullChecks": true, "baseUrl": "../", "typeRoots": [ "../" @@ -19,4 +19,4 @@ "index.d.ts", "statuses-tests.ts" ] -} \ No newline at end of file +} diff --git a/types/statuses/tslint.json b/types/statuses/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/statuses/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }