File tree Expand file tree Collapse file tree 1 file changed +5
-15
lines changed Expand file tree Collapse file tree 1 file changed +5
-15
lines changed Original file line number Diff line number Diff line change @@ -59,22 +59,17 @@ export type StringPath<T extends object> = NonNullable<T> extends (infer U)[]
5959 } [ keyof T ]
6060 : never ;
6161
62- type ArrField < Arr extends string , K > = Arr extends never
63- ? never
64- : K extends string
65- ? `${K } .${Arr } `
66- : never ;
67-
6862export type StringPathLeaves <
6963 T extends object ,
7064 Arr extends string = never
7165> = NonNullable < T > extends ( infer U ) [ ]
7266 ? NonNullable < U > extends object
7367 ?
68+ | ( Arr extends never ? never : `.${Arr } `)
7469 | `[${number } ]${NonNullable < U > extends unknown [ ]
7570 ? ''
7671 : '.' } ${StringPathLeaves < NonNullable < U > , Arr > & string } `
77- : `[${number } ]`
72+ : `[${number } ]` | ( Arr extends never ? never : `.${ Arr } ` )
7873 : NonNullable < T > extends object
7974 ?
8075 | {
@@ -88,14 +83,9 @@ export type StringPathLeaves<
8883 | {
8984 [ K in keyof T ] -?: K extends string
9085 ? NonNullable < T [ K ] > extends object
91- ?
92- | ( NonNullable < T [ K ] > extends unknown [ ]
93- ? ArrField < Arr , K >
94- : never )
95- | `${K } ${NonNullable < T [ K ] > extends unknown [ ]
96- ? ''
97- : '.' } ${StringPathLeaves < NonNullable < T [ K ] > , Arr > &
98- string } `
86+ ? `${K } ${NonNullable < T [ K ] > extends unknown [ ]
87+ ? ''
88+ : '.' } ${StringPathLeaves < NonNullable < T [ K ] > , Arr > & string } `
9989 : never
10090 : never ;
10191 } [ keyof T ]
You can’t perform that action at this time.
0 commit comments