File tree Expand file tree Collapse file tree 2 files changed +25
-17
lines changed
Expand file tree Collapse file tree 2 files changed +25
-17
lines changed Original file line number Diff line number Diff line change @@ -97,23 +97,6 @@ declare namespace AsTypedInternal {
9797 : AsTypedTupleSchemaWithAdditional < TupleType , Additional >
9898 : SchemaType extends { not : infer T }
9999 ? ResolveNot < T >
100- : SchemaType extends {
101- type : "object" ;
102- required ?: infer Required ;
103- properties ?: infer Props ;
104- additionalProperties ?: infer AdditionalProperties ;
105- }
106- ? ResolveObject <
107- Props ,
108- Required extends undefined
109- ? unknown
110- : Required extends string [ ]
111- ? string extends Required [ number ]
112- ? unknown
113- : Required [ number ]
114- : unknown ,
115- AdditionalProperties
116- >
117100 : SchemaType extends { type : "array" ; items : infer ValueType }
118101 ? Array < Resolve < ValueType > >
119102 : SchemaType extends {
@@ -134,6 +117,23 @@ declare namespace AsTypedInternal {
134117 ? ResolveAllOf < Inner >
135118 : SchemaType extends { if : infer If ; then : infer Then ; else ?: infer Else }
136119 ? ( Resolve < If > & Resolve < Then > ) | Resolve < Else >
120+ : SchemaType extends {
121+ type ?: "object" ;
122+ required ?: infer Required ;
123+ properties ?: infer Props ;
124+ additionalProperties ?: infer AdditionalProperties ;
125+ }
126+ ? ResolveObject <
127+ Props ,
128+ Required extends undefined
129+ ? unknown
130+ : Required extends string [ ]
131+ ? string extends Required [ number ]
132+ ? unknown
133+ : Required [ number ]
134+ : unknown ,
135+ AdditionalProperties
136+ >
137137 : never ;
138138
139139 type ResolveAllOf < Tuple > = Tuple extends [ ]
Original file line number Diff line number Diff line change @@ -95,6 +95,14 @@ assert(
9595 _ as { a : number ; b : string }
9696) ;
9797
98+ assert (
99+ _ as AsTyped < {
100+ required : [ "a" , "b" ] ;
101+ properties : { a : { type : "number" } ; b : { type : "string" } } ;
102+ } > ,
103+ _ as { a : number ; b : string }
104+ ) ;
105+
98106assert (
99107 _ as AsTyped < { type : "object" ; additionalProperties : { type : "number" } } > ,
100108 _ as { [ key : string ] : number }
You can’t perform that action at this time.
0 commit comments