File tree 4 files changed +28
-6
lines changed
4 files changed +28
-6
lines changed Original file line number Diff line number Diff line change @@ -308,3 +308,14 @@ test("optional and nullable", () => {
308
308
if ( value . key === "b" ) value . b ;
309
309
if ( value . key === null ) value . b ;
310
310
} ) ;
311
+
312
+ test ( "readonly array of options" , ( ) => {
313
+ const options = [
314
+ z . object ( { type : z . literal ( "x" ) , val : z . literal ( 1 ) } ) ,
315
+ z . object ( { type : z . literal ( "y" ) , val : z . literal ( 2 ) } ) ,
316
+ ] as const ;
317
+
318
+ expect (
319
+ z . discriminatedUnion ( "type" , options ) . parse ( { type : "x" , val : 1 } )
320
+ ) . toEqual ( { type : "x" , val : 1 } ) ;
321
+ } ) ;
Original file line number Diff line number Diff line change @@ -3165,7 +3165,7 @@ export type ZodDiscriminatedUnionOption<Discriminator extends string> =
3165
3165
3166
3166
export interface ZodDiscriminatedUnionDef <
3167
3167
Discriminator extends string ,
3168
- Options extends ZodDiscriminatedUnionOption < string > [ ] = ZodDiscriminatedUnionOption < string > [ ]
3168
+ Options extends readonly ZodDiscriminatedUnionOption < string > [ ] = ZodDiscriminatedUnionOption < string > [ ]
3169
3169
> extends ZodTypeDef {
3170
3170
discriminator : Discriminator ;
3171
3171
options : Options ;
@@ -3175,7 +3175,7 @@ export interface ZodDiscriminatedUnionDef<
3175
3175
3176
3176
export class ZodDiscriminatedUnion <
3177
3177
Discriminator extends string ,
3178
- Options extends ZodDiscriminatedUnionOption < Discriminator > [ ]
3178
+ Options extends readonly ZodDiscriminatedUnionOption < Discriminator > [ ]
3179
3179
> extends ZodType <
3180
3180
output < Options [ number ] > ,
3181
3181
ZodDiscriminatedUnionDef < Discriminator , Options > ,
@@ -3245,7 +3245,7 @@ export class ZodDiscriminatedUnion<
3245
3245
*/
3246
3246
static create <
3247
3247
Discriminator extends string ,
3248
- Types extends [
3248
+ Types extends readonly [
3249
3249
ZodDiscriminatedUnionOption < Discriminator > ,
3250
3250
...ZodDiscriminatedUnionOption < Discriminator > [ ]
3251
3251
]
Original file line number Diff line number Diff line change @@ -307,3 +307,14 @@ test("optional and nullable", () => {
307
307
if ( value . key === "b" ) value . b ;
308
308
if ( value . key === null ) value . b ;
309
309
} ) ;
310
+
311
+ test ( "readonly array of options" , ( ) => {
312
+ const options = [
313
+ z . object ( { type : z . literal ( "x" ) , val : z . literal ( 1 ) } ) ,
314
+ z . object ( { type : z . literal ( "y" ) , val : z . literal ( 2 ) } ) ,
315
+ ] as const ;
316
+
317
+ expect (
318
+ z . discriminatedUnion ( "type" , options ) . parse ( { type : "x" , val : 1 } )
319
+ ) . toEqual ( { type : "x" , val : 1 } ) ;
320
+ } ) ;
Original file line number Diff line number Diff line change @@ -3165,7 +3165,7 @@ export type ZodDiscriminatedUnionOption<Discriminator extends string> =
3165
3165
3166
3166
export interface ZodDiscriminatedUnionDef <
3167
3167
Discriminator extends string ,
3168
- Options extends ZodDiscriminatedUnionOption < string > [ ] = ZodDiscriminatedUnionOption < string > [ ]
3168
+ Options extends readonly ZodDiscriminatedUnionOption < string > [ ] = ZodDiscriminatedUnionOption < string > [ ]
3169
3169
> extends ZodTypeDef {
3170
3170
discriminator : Discriminator ;
3171
3171
options : Options ;
@@ -3175,7 +3175,7 @@ export interface ZodDiscriminatedUnionDef<
3175
3175
3176
3176
export class ZodDiscriminatedUnion <
3177
3177
Discriminator extends string ,
3178
- Options extends ZodDiscriminatedUnionOption < Discriminator > [ ]
3178
+ Options extends readonly ZodDiscriminatedUnionOption < Discriminator > [ ]
3179
3179
> extends ZodType <
3180
3180
output < Options [ number ] > ,
3181
3181
ZodDiscriminatedUnionDef < Discriminator , Options > ,
@@ -3245,7 +3245,7 @@ export class ZodDiscriminatedUnion<
3245
3245
*/
3246
3246
static create <
3247
3247
Discriminator extends string ,
3248
- Types extends [
3248
+ Types extends readonly [
3249
3249
ZodDiscriminatedUnionOption < Discriminator > ,
3250
3250
...ZodDiscriminatedUnionOption < Discriminator > [ ]
3251
3251
]
You can’t perform that action at this time.
0 commit comments