We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent b251304 commit 6eec084Copy full SHA for 6eec084
src/typescript/dot-path.ts
@@ -0,0 +1,35 @@
1
+interface Change {
2
+ name: string;
3
+ upp: number;
4
+ fee: number;
5
+ aum: number;
6
+ capacity: number;
7
+ cooldown: number;
8
+ expiredAt: string;
9
+ createdAt: string;
10
+}
11
+
12
+interface Item {
13
+ id: number;
14
+ changes: Change;
15
16
17
+interface PaginatedData {
18
+ items: Item[];
19
+ totalCount: number;
20
+ hasNextPage: boolean;
21
+ hasPreviousPage: boolean;
22
23
24
+type DotPaths<T, Prefix extends string = ""> =
25
+ T extends Array<infer U>
26
+ ? DotPaths<U, Prefix>
27
+ : T extends object
28
+ ? {
29
+ [K in keyof T & string]:
30
+ | `${Prefix}${K}`
31
+ | DotPaths<T[K], `${Prefix}${K}.`>;
32
+ }[keyof T & string]
33
+ : never;
34
35
+type PaginatedDataPaths = DotPaths<PaginatedData>;
0 commit comments