mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-08-11 20:40:20 +00:00
cloner - new typings - tested (#25406)
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import cloner = require("cloner");
|
||||
|
||||
interface A {
|
||||
test: string;
|
||||
nest: {
|
||||
test: string;
|
||||
num: number;
|
||||
};
|
||||
}
|
||||
|
||||
interface B {
|
||||
somethingElse: string;
|
||||
nest: {
|
||||
somethingElse: string;
|
||||
notNaN: number;
|
||||
};
|
||||
}
|
||||
|
||||
let aO: A;
|
||||
let aN: A;
|
||||
let bO: B;
|
||||
let bN: B;
|
||||
|
||||
aO = {
|
||||
test: "test",
|
||||
nest: {
|
||||
test: "nestTest",
|
||||
num: 1
|
||||
}
|
||||
};
|
||||
bO = {
|
||||
somethingElse: "se",
|
||||
nest: {
|
||||
somethingElse: "nestSe",
|
||||
notNaN: 0
|
||||
}
|
||||
};
|
||||
|
||||
aN = cloner.deep.copy(aO);
|
||||
bN = cloner.shallow.copy(bO);
|
||||
|
||||
aN = cloner.deep.merge(aO, bO);
|
||||
bN = cloner.shallow.merge(aO, bO);
|
||||
Vendored
+45
@@ -0,0 +1,45 @@
|
||||
// Type definitions for cloner 0.4
|
||||
// Project: https://github.com/WebReflection/cloner
|
||||
// Definitions by: matrumz <https://github.com/matrumz>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
/**
|
||||
* Deep-style methods that will perform operations by value, instead of reference.
|
||||
*/
|
||||
export namespace deep {
|
||||
/**
|
||||
* Will loop over all own keys and deeply copy (copy by value) them to a new object.
|
||||
*
|
||||
* Preserves inheritance and is recursion aware, meaning it shouldn't fail with recursive properties.
|
||||
* @param [obj] The object to copy.
|
||||
*/
|
||||
function copy<T>(obj: T): T;
|
||||
/**
|
||||
* Preserves what's already in the target and merges all own keys found in one or more passed sources.
|
||||
*
|
||||
* Properties are merged by value.
|
||||
* @param [target] Destination object for merged properties.
|
||||
* @param [sources] Source object(s) for properties to merge.
|
||||
*/
|
||||
function merge(target: any, ...sources: any[]): any;
|
||||
}
|
||||
/**
|
||||
* Shallow-style methods that will perform operations by reference, instead of value.
|
||||
*/
|
||||
export namespace shallow {
|
||||
/**
|
||||
* Will loop over all own keys and shallow copy (copy by reference) them to a new object.
|
||||
*
|
||||
* Preserves inheritance and is recursion aware, meaning it shouldn't fail with recursive properties.
|
||||
* @param [obj] The object to copy.
|
||||
*/
|
||||
function copy<T>(obj: T): T;
|
||||
/**
|
||||
* Preserves what's already in the target and merges all own keys found in one or more passed sources.
|
||||
*
|
||||
* Properties are merged by reference.
|
||||
* @param [target] Destination object for merged properties.
|
||||
* @param [sources] Source object(s) for properties to merge.
|
||||
*/
|
||||
function merge(target: any, ...sources: any[]): any;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"cloner-tests.ts"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Reference in New Issue
Block a user