mirror of
https://github.com/FlipsideCrypto/DefinitelyTyped.git
synced 2026-02-06 10:56:53 +00:00
[merge-deep] Add types (#46907)
This commit is contained in:
parent
e9a148ade9
commit
4612109a7d
13
types/merge-deep/index.d.ts
vendored
Normal file
13
types/merge-deep/index.d.ts
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
// Type definitions for merge-deep 3.0
|
||||
// Project: https://github.com/jonschlinkert/merge-deep
|
||||
// Definitions by: Emily Marigold Klassen <https://github.com/forivall>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
export = mergeDeep;
|
||||
|
||||
/** Recursively merge values in a javascript object. */
|
||||
declare function mergeDeep<T, U>(orig: T, objects: U): T & U;
|
||||
declare function mergeDeep<T, U, V>(orig: T, objects1: U, objects2: V): T & U & V;
|
||||
declare function mergeDeep<T, U, V, W>(orig: T, objects1: U, objects2: V, objects3: W): T & U & V & W;
|
||||
declare function mergeDeep<T, U, V, W, X>(orig: T, objects1: U, objects2: V, objects3: W, objects4: X): T & U & V & W & X;
|
||||
declare function mergeDeep(target: any, ...sources: any[]): any;
|
||||
43
types/merge-deep/merge-deep-tests.ts
Normal file
43
types/merge-deep/merge-deep-tests.ts
Normal file
@ -0,0 +1,43 @@
|
||||
import merge = require('merge-deep');
|
||||
|
||||
merge({a: {b: {c: 'c', d: 'd'}}}, {a: {b: {e: 'e', f: 'f'}}});
|
||||
|
||||
const objectBase = {
|
||||
test: 'base'
|
||||
};
|
||||
|
||||
const objectOne = {
|
||||
test: 'one',
|
||||
iamone: true
|
||||
};
|
||||
|
||||
const objectTwo = {
|
||||
test: 2,
|
||||
iamtwo: true
|
||||
};
|
||||
|
||||
const objectThree = {
|
||||
iamthree: true,
|
||||
depth: {
|
||||
innerType: 'deep'
|
||||
}
|
||||
};
|
||||
|
||||
type ExtendedType = typeof objectBase & typeof objectOne;
|
||||
const extended: ExtendedType = merge(objectBase, objectOne);
|
||||
extended.test === 'one';
|
||||
extended.iamone;
|
||||
|
||||
type MoreExtendedType = typeof objectBase & typeof objectOne & typeof objectTwo;
|
||||
const moreExtended: MoreExtendedType = merge(objectBase, objectOne, objectTwo);
|
||||
moreExtended.test === 2;
|
||||
moreExtended.iamone;
|
||||
moreExtended.iamtwo;
|
||||
|
||||
type DeepExtendedType = typeof objectBase & typeof objectOne &
|
||||
typeof objectTwo & typeof objectThree;
|
||||
const deepExtended: DeepExtendedType = merge(objectBase, objectOne, objectTwo, objectThree);
|
||||
deepExtended.iamone;
|
||||
deepExtended.iamtwo;
|
||||
deepExtended.iamthree;
|
||||
deepExtended.depth.innerType === 'deep';
|
||||
23
types/merge-deep/tsconfig.json
Normal file
23
types/merge-deep/tsconfig.json
Normal file
@ -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",
|
||||
"merge-deep-tests.ts"
|
||||
]
|
||||
}
|
||||
1
types/merge-deep/tslint.json
Normal file
1
types/merge-deep/tslint.json
Normal file
@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Loading…
Reference in New Issue
Block a user