File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -6,11 +6,47 @@ export type FlipMap<T extends Record<keyof T, keyof any>> = {
66 [ K in keyof T as T [ K ] ] : K ;
77} ;
88
9+ /**
10+ * Make properties K in T optional
11+ */
12+ export type PartialBy < T , K extends keyof T > = Omit < T , K > & Partial < Pick < T , K > > ;
13+
14+ /**
15+ * Make properties K in T required
16+ */
17+ export type RequiredBy < T , K extends keyof T > =
18+ & Omit < T , K >
19+ & Required < Pick < T , K > > ;
20+
21+ /**
22+ * Make properties K in T required, and the rest partial
23+ */
24+ export type RequiredPartialBy < T , K extends keyof T > =
25+ & RequiredBy <
26+ Pick < T , K > ,
27+ K
28+ >
29+ & Partial < Omit < T , K > > ;
30+
31+ /**
32+ * Make properties K in T readonly
33+ */
34+ export type ReadonlyBy < T , K extends keyof T > =
35+ & Omit < T , K >
36+ & Readonly < Pick < T , K > > ;
37+
938/**
1039 * Makes an object with readonly properties writable
1140 */
1241export type Writeable < T > = { - readonly [ P in keyof T ] : T [ P ] } ;
1342
43+ /**
44+ * Make properties K in T writable
45+ */
46+ export type WriteableBy < T , K extends keyof T > =
47+ & Omit < T , K >
48+ & Writeable < Pick < T , K > > ;
49+
1450/**
1551 * Gets the values of an object
1652 */
You can’t perform that action at this time.
0 commit comments