File tree Expand file tree Collapse file tree 2 files changed +9
-10
lines changed
02-assignability-and-conditional-types Expand file tree Collapse file tree 2 files changed +9
-10
lines changed Original file line number Diff line number Diff line change @@ -90,9 +90,7 @@ namespace four {
9090
9191namespace five {
9292 type SafeGet < obj , key , defaultType > = key extends keyof obj
93- ? obj [ key ] extends infer value
94- ? value
95- : defaultType
93+ ? obj [ key ]
9694 : defaultType ;
9795
9896 type res1 = SafeGet < { name : "Gabriel" } , "name" , "Anonymous" > ;
Original file line number Diff line number Diff line change @@ -38,16 +38,17 @@ namespace one {
3838 * the of url parameters
3939 */
4040namespace two {
41+ type CreateParamObject < keys extends string > = {
42+ [ k in keys ] : string ;
43+ } ;
44+
4145 type ExtractUrlParams < url > =
4246 url extends `${infer start } /:${infer param } /${infer rest } `
43- ? ExtractUrlParams < start > &
44- ExtractUrlParams < rest > & {
45- [ k in param ] : string ;
46- }
47+ ? CreateParamObject < param > &
48+ ExtractUrlParams < start > &
49+ ExtractUrlParams < rest >
4750 : url extends `${infer start } /:${infer param } `
48- ? ExtractUrlParams < start > & {
49- [ k in param ] : string ;
50- }
51+ ? CreateParamObject < param > & ExtractUrlParams < start >
5152 : { } ;
5253
5354 type res1 = ExtractUrlParams < "/user/:username" > ;
You can’t perform that action at this time.
0 commit comments