diff --git a/src/ZodSchemaClass.ts b/src/ZodSchemaClass.ts index acd27ae..3745878 100644 --- a/src/ZodSchemaClass.ts +++ b/src/ZodSchemaClass.ts @@ -1,5 +1,5 @@ import { expression } from "@thilawyn/traitify-ts" -import { AbstractClass } from "type-fest" +import { AbstractClass, Simplify } from "type-fest" import { z } from "zod" import { ExtendableZodSchemaObject } from "./traits/ExtendableZodSchemaObject" import { InstantiableZodSchemaObject } from "./traits/InstantiableZodSchemaObject" @@ -36,18 +36,19 @@ export function ZodSchemaClassOf< return expression .extends(Schemas as unknown as ( AbstractClass< - InstanceType & - Extend<[ - InstanceType, - Values, - ]>, + InstanceType & + Simplify< + Extend<[Schemas, Values]> + >, ConstructorParameters > & - Extend<[ - StaticMembers, - StaticMembers, - ]> + Simplify< + Extend<[ + StaticMembers, + StaticMembers, + ]> + > )) .expresses( InstantiableZodSchemaObject, diff --git a/src/tests.ts b/src/tests.ts index 9f0657e..3de2948 100644 --- a/src/tests.ts +++ b/src/tests.ts @@ -5,6 +5,7 @@ import { ZodSchemaClass } from "./ZodSchemaClass" const TestExp = ZodSchemaClass({ schema: z.object({ + /** Object ID */ id: z.bigint(), name: z.string(), }),