From 92a0fe0a28782abe6c157e6ab65118b2cdff0f5a Mon Sep 17 00:00:00 2001 From: Chris Howard Date: Sat, 2 Nov 2019 07:16:51 +0800 Subject: [PATCH] [just-clone] Adding new Typings for just-clone module (#39996) * Typings for just-clone * Updated tests * Added more tests * Moved test --- types/just-clone/index.d.ts | 9 +++++++++ types/just-clone/just-clone-tests.ts | 25 +++++++++++++++++++++++++ types/just-clone/tsconfig.json | 23 +++++++++++++++++++++++ types/just-clone/tslint.json | 1 + 4 files changed, 58 insertions(+) create mode 100644 types/just-clone/index.d.ts create mode 100644 types/just-clone/just-clone-tests.ts create mode 100644 types/just-clone/tsconfig.json create mode 100644 types/just-clone/tslint.json diff --git a/types/just-clone/index.d.ts b/types/just-clone/index.d.ts new file mode 100644 index 0000000000..2d33e97ea9 --- /dev/null +++ b/types/just-clone/index.d.ts @@ -0,0 +1,9 @@ +// Type definitions for just-clone 3.1 +// Project: https://github.com/angus-c/just#readme +// Definitions by: Chris Howard +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 + +declare function clone(obj: T): T; + +export = clone; diff --git a/types/just-clone/just-clone-tests.ts b/types/just-clone/just-clone-tests.ts new file mode 100644 index 0000000000..e0d06a8e45 --- /dev/null +++ b/types/just-clone/just-clone-tests.ts @@ -0,0 +1,25 @@ +import clone = require('just-clone'); + +const array: string[] = []; +const object: object = {}; + +const arr = [1, 2, 3]; +const subObj = { aa: 1 }; +const obj = { a: 3, b: 5, c: arr, d: subObj }; + +clone(obj); // $ExpectType { a: number; b: number; c: number[]; d: { aa: number; }; } +clone(object); // $ExpectType object +clone(array); // $ExpectType string[] +clone(() => array); // $ExpectType () => string[] +clone(() => {}); // $ExpectType () => void +clone({ a: array }); // $ExpectType { a: string[]; } +clone([{ a: '' }]); // $ExpectType { a: string; }[] + +// Incorrect types +clone(); // $ExpectError +clone(1); // $ExpectError +clone(''); // $ExpectError +clone(true); // $ExpectError +clone(false); // $ExpectError +clone(null); // $ExpectError +clone(undefined); // $ExpectError diff --git a/types/just-clone/tsconfig.json b/types/just-clone/tsconfig.json new file mode 100644 index 0000000000..679c1ba9c7 --- /dev/null +++ b/types/just-clone/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "just-clone-tests.ts" + ] +} diff --git a/types/just-clone/tslint.json b/types/just-clone/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/just-clone/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }