-
Notifications
You must be signed in to change notification settings - Fork 6
/
object.d.ts
112 lines (101 loc) · 3.46 KB
/
object.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
type PropertyName = string | number | symbol;
/**
* Copy the values of all of the enumerable own properties from one or more source objects to a
* target object. Returns the target object.
*
* @param target The target object to copy to.
* @param source The source object from which to copy properties.
*/
export function assign<T, U>(target: T, source: U): T & U;
/**
* Copy the values of all of the enumerable own properties from one or more source objects to a
* target object. Returns the target object.
*
* @param target The target object to copy to.
* @param source1 The first source object from which to copy properties.
* @param source2 The second source object from which to copy properties.
*/
export function assign<T, U, V>(target: T, source1: U, source2: V): T & U & V;
/**
* Copy the values of all of the enumerable own properties from one or more source objects to a
* target object. Returns the target object.
*
* @param target The target object to copy to.
* @param source1 The first source object from which to copy properties.
* @param source2 The second source object from which to copy properties.
* @param source3 The third source object from which to copy properties.
*/
export function assign<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;
/**
* Copy the values of all of the enumerable own properties from one or more source objects to a
* target object. Returns the target object.
*
* @param target The target object to copy to.
* @param sources One or more source objects from which to copy properties
*/
export function assign<T>(target: T, ...sources: any[]): T;
/**
* Gets a nested property of a given object, with an optional default value.
*
* @param target The target of the get operation.
* @param path The path to the nested value.
* @param defaultValue The result to return if the property does not exist.
*
* @return any
*/
export function get(target: any, path: (string|number)[], defaultValue?: any): any;
/**
* Sets a nested property of a given object to the specified value.
*
* This mutates the object and returns it.
*
* @param target The target of the set operation.
* @param path The path to the nested value.
* @param value The value to set.
*
* @return the element
*/
export function set<T>(target: T, path: PropertyName[], value: any): T;
/**
* Pick properties from the given target.
*
* @param target
* @param properties
*
* @return
*/
export function pick<T, V extends keyof T>(target: T, properties: Array<V>): Pick<T, V>;
/**
* Pick properties from the given target.
*
* @param target
* @param properties
*
* @return
*/
export function pick<T, V extends PropertyName[]>(target: T, properties: V): Partial<T>;
/**
* Pick all target properties, excluding the given ones.
*
* @param target
* @param properties
*
* @return target
*/
export function omit<T, V extends keyof T>(target: T, properties: V): Omit<T, V>;
/**
* Pick all target properties, excluding the given ones.
*
* @param target
* @param properties
*
* @return target
*/
export function omit<T, V extends PropertyName[]>(target: T, properties: V): Pick<T, Exclude<keyof T, V[number]>>;
/**
* Copy the values of all of the enumerable own properties from one or more source objects to a
* target object. Returns the target object.
* @param target The target object to copy to.
* @param sources One or more source objects from which to copy properties
*/
export function merge(target: object, ...sources: any[]): any;