diff --git a/src/array.ts b/src/array.ts index 8ffaaaba1..27bd280ad 100644 --- a/src/array.ts +++ b/src/array.ts @@ -261,6 +261,20 @@ export default class ArraySchema< if (this.innerType) base.innerType = this.innerType.describe(); return base; } + + nullable(isNullable?: true): ArraySchema; + nullable(isNullable: false): ArraySchema>; + nullable(isNullable = true): ArraySchema { + return super.nullable(isNullable as any); + } + + defined(): DefinedArraySchema { + return super.defined(); + } + + required(msg?: MixedLocale['required']): RequiredArraySchema { + return super.required(msg); + } } create.prototype = ArraySchema.prototype; diff --git a/test/types.ts b/test/types.ts index 13ca36fd6..a73421201 100644 --- a/test/types.ts +++ b/test/types.ts @@ -264,6 +264,20 @@ SchemaOf: { const _c1 = array(number()) .concat(array(number()).required()) .validateSync([]); + + // $ExpectType AssertsShape<{ a: RequiredNumberSchema>; }>[] | null + const _definedArray: Array<{ a: number }> | null = array() + .of(object({ a: number().required() })) + .nullable() + .defined() + .validateSync([]); + + // $ExpectType AssertsShape<{ a: RequiredNumberSchema>; }>[] + const _requiredArray: Array<{ a: number }> = array() + .of(object({ a: number().required() })) + .nullable() + .required() + .validateSync([]); } {