@@ -83,95 +83,95 @@ type StringPath<
8383 type : never ;
8484 }
8585> = T extends ( infer U ) [ ]
86- ?
87- | If < Options , 'objAppend' , string , Concat < Options [ 'path' ] , Options [ 'objAppend' ] > , never , T >
88- | If < Options , 'filter' , 'arrays' | 'all' , Options [ 'path' ] , never , T >
89- | ( NonNullable < U > extends DictOrArray
90- ? StringPath <
91- NonNullable < U > ,
92- {
93- filter : Options [ 'filter' ] ;
94- objAppend : Options [ 'objAppend' ] ;
95- path : `${Options [ 'path' ] } [${number } ]`;
96- type : Options [ 'type' ] ;
97- }
98- >
99- : If < Options , 'filter' , 'leaves' | 'all' , `${Options [ 'path' ] } [${number } ]`, never , T > )
100- : {
101- [ K in Extract < AllKeys < T > , string > ] : NonNullable < T [ K ] > extends DictOrArray
86+ ?
87+ | If < Options , 'objAppend' , string , Concat < Options [ 'path' ] , Options [ 'objAppend' ] > , never , T >
88+ | If < Options , 'filter' , 'arrays' | 'all' , Options [ 'path' ] , never , T >
89+ | ( NonNullable < U > extends DictOrArray
90+ ? StringPath <
91+ NonNullable < U > ,
92+ {
93+ filter : Options [ 'filter' ] ;
94+ objAppend : Options [ 'objAppend' ] ;
95+ path : `${Options [ 'path' ] } [${number } ]`;
96+ type : Options [ 'type' ] ;
97+ }
98+ >
99+ : If < Options , 'filter' , 'leaves' | 'all' , `${Options [ 'path' ] } [${number } ]`, never , T > )
100+ : {
101+ [ K in Extract < AllKeys < T > , string > ] : NonNullable < T [ K ] > extends DictOrArray
102+ ?
103+ | If <
104+ Options ,
105+ 'objAppend' ,
106+ string ,
107+ Concat < Options [ 'path' ] , Options [ 'objAppend' ] > ,
108+ never ,
109+ T [ K ]
110+ >
111+ | NonNullable < T [ K ] > extends ( infer U ) [ ]
102112 ?
103- | If <
104- Options ,
105- 'objAppend' ,
106- string ,
107- Concat < Options [ 'path' ] , Options [ 'objAppend' ] > ,
108- never ,
109- T [ K ]
110- >
111- | NonNullable < T [ K ] > extends ( infer U ) [ ]
112- ?
113- | If < Options , 'filter' , 'arrays' | 'all' , Concat < Options [ 'path' ] , K > , never , T [ K ] >
114- | ( NonNullable < U > extends unknown [ ]
115- ? If <
116- Options ,
117- 'filter' ,
118- 'arrays' | 'all' ,
119- Concat < Options [ 'path' ] , `${K } [${number } ]`> ,
120- never ,
121- T [ K ]
122- >
123- : NonNullable < U > extends DictOrArray
124- ? IsAny < T [ K ] > extends true
125- ? Concat < Options [ 'path' ] , `${K } [${number } ]`>
126- : If <
127- Options ,
128- 'filter' ,
129- 'all' ,
130- Concat < Options [ 'path' ] , `${K } [${number } ]`> ,
131- never ,
132- U
133- >
113+ | If < Options , 'filter' , 'arrays' | 'all' , Concat < Options [ 'path' ] , K > , never , T [ K ] >
114+ | ( NonNullable < U > extends unknown [ ]
115+ ? If <
116+ Options ,
117+ 'filter' ,
118+ 'arrays' | 'all' ,
119+ Concat < Options [ 'path' ] , `${K } [${number } ]`> ,
120+ never ,
121+ T [ K ]
122+ >
123+ : NonNullable < U > extends DictOrArray
124+ ? IsAny < T [ K ] > extends true
125+ ? Concat < Options [ 'path' ] , `${K } [${number } ]`>
134126 : If <
135127 Options ,
136128 'filter' ,
137- 'leaves' | ' all',
129+ 'all' ,
138130 Concat < Options [ 'path' ] , `${K } [${number } ]`> ,
139131 never ,
140132 U
141- > )
142- | ( NonNullable < U > extends DictOrArray
143- ? StringPath <
144- NonNullable < U > ,
145- {
146- filter : Options [ 'filter' ] ;
147- objAppend : Options [ 'objAppend' ] ;
148- path : Concat < Options [ 'path' ] , `${K } [${number } ]`> ;
149- type : Options [ 'type' ] ;
150- }
151- >
152- : never )
153- : IsAny < T [ K ] > extends true
154- ? Concat < Options [ 'path' ] , K >
155- :
156- | If <
157- Options ,
158- 'filter' ,
159- 'all' ,
160- Concat < Options [ 'path' ] , K > ,
161- unknown extends T [ K ] ? Concat < Options [ 'path' ] , K > : never ,
162- T [ K ]
163- >
164- | StringPath <
165- NonNullable < T [ K ] > ,
133+ >
134+ : If <
135+ Options ,
136+ 'filter' ,
137+ 'leaves' | 'all' ,
138+ Concat < Options [ 'path' ] , `${K } [${number } ]`> ,
139+ never ,
140+ U
141+ > )
142+ | ( NonNullable < U > extends DictOrArray
143+ ? StringPath <
144+ NonNullable < U > ,
166145 {
167146 filter : Options [ 'filter' ] ;
168147 objAppend : Options [ 'objAppend' ] ;
169- path : Concat < Options [ 'path' ] , K > ;
148+ path : Concat < Options [ 'path' ] , `${ K } [${ number } ]` > ;
170149 type : Options [ 'type' ] ;
171150 }
172- >
173- : If < Options , 'filter' , 'leaves' | 'all' , Concat < Options [ 'path' ] , K > , never , T [ K ] > ;
174- } [ Extract < AllKeys < T > , string > ] ;
151+ >
152+ : never )
153+ : IsAny < T [ K ] > extends true
154+ ? Concat < Options [ 'path' ] , K >
155+ :
156+ | If <
157+ Options ,
158+ 'filter' ,
159+ 'all' ,
160+ Concat < Options [ 'path' ] , K > ,
161+ unknown extends T [ K ] ? Concat < Options [ 'path' ] , K > : never ,
162+ T [ K ]
163+ >
164+ | StringPath <
165+ NonNullable < T [ K ] > ,
166+ {
167+ filter : Options [ 'filter' ] ;
168+ objAppend : Options [ 'objAppend' ] ;
169+ path : Concat < Options [ 'path' ] , K > ;
170+ type : Options [ 'type' ] ;
171+ }
172+ >
173+ : If < Options , 'filter' , 'leaves' | 'all' , Concat < Options [ 'path' ] , K > , never , T [ K ] > ;
174+ } [ Extract < AllKeys < T > , string > ] ;
175175
176176export type FormPathType < T , P extends string > = P extends keyof T
177177 ? T [ P ]
0 commit comments