0.1.2 #3
@@ -17,19 +17,6 @@ export class ZodSchemaClassBuilder<
|
||||
extends TraitExpressionBuilder<Superclass, Traits> {
|
||||
declare ["constructor"]: typeof ZodSchemaClassBuilder
|
||||
|
||||
extends<
|
||||
Super extends AbstractClass<object>
|
||||
>(
|
||||
// \/ Ensures `extends` can only be called once at the beginning
|
||||
this: ZodSchemaClassBuilder<typeof TraitExpression.NullSuperclass, Traits>,
|
||||
superclass: Super,
|
||||
) {
|
||||
return new this.constructor(
|
||||
superclass,
|
||||
this.expressionTraits,
|
||||
)
|
||||
}
|
||||
|
||||
schema<
|
||||
Superclass extends AbstractClass<object, []> & { schema?: never, defaultValues?: never },
|
||||
|
||||
@@ -147,6 +134,14 @@ export interface ZodSchemaClassBuilder<
|
||||
Superclass extends AbstractClass<object>,
|
||||
Traits extends readonly Trait<any, any, any, any>[],
|
||||
> {
|
||||
extends<
|
||||
Super extends AbstractClass<object>
|
||||
>(
|
||||
// \/ Ensures `extends` can only be called once at the beginning
|
||||
this: ZodSchemaClassBuilder<typeof TraitExpression.NullSuperclass, Traits>,
|
||||
superclass: Super,
|
||||
): InstanceType<typeof this.constructor<Super, Traits>>
|
||||
|
||||
expresses<
|
||||
const T extends readonly Trait<
|
||||
TraitExpression<
|
||||
|
||||
@@ -7,6 +7,7 @@ import { AbstractClass, Class } from "type-fest"
|
||||
|
||||
|
||||
const exp = new ZodSchemaClassBuilder(TraitExpression.NullSuperclass, [])
|
||||
.extends(class {})
|
||||
.schema({
|
||||
schema: z.object({
|
||||
/** User ID */
|
||||
|
||||
Reference in New Issue
Block a user