diff --git a/src/items/nullable.ts b/src/items/nullable.ts index 2cb6cd8..9afbe46 100644 --- a/src/items/nullable.ts +++ b/src/items/nullable.ts @@ -17,7 +17,12 @@ export default class SchemaNullable extends SchemaItem< } public override parse(input: unknown, options?: { fast?: boolean }): ValidationResult | undefined> { - if (this.isNull(input)) { + const res = super.parse(input, options) + if (!res.valid) { + return res + } + + if (this.isNull(res.object)) { return { valid: true, object: undefined @@ -28,7 +33,7 @@ export default class SchemaNullable extends SchemaItem< } public override isOfType(input: unknown): input is SchemaInfer | undefined { - return Array.isArray(input) + return this.isNull(input) || this.child.isOfType(input) } private isNull(value: unknown): value is undefined | null {