Open ernstoarllano opened 1 year ago
I am having the same issue. I think it happened because I updated zod from 3.21.4 to 3.22.1
@ernstoarllano Are you using a monorepo by chance? If so, are the versions for zod in all of your package.json
s the same?
@masonbrothers I am using a monorepo and it appears zod
is already included. Removing the extra package did the trick. Was that the case for you as well?
Thanks! I needed zod
as a dependency so I just downgraded it to v3.21.4. I think that v3.22.0 and later are not compatible with some dependent libraries (like @hookform/resolvers
) due to ZodReadonly
.
Thanks! I needed
zod
as a dependency so I just downgraded it to v3.21.4. I think that v3.22.0 and later are not compatible with some dependent libraries (like@hookform/resolvers
) due toZodReadonly
.
Thanks I got exactly the same error in v3.22.1
and v3.22.0
and downgrading to v3.21.4
resolved it
I am having the same issue. Downgrading to v3.21.4 resolved it.
I think a solution for zod@3.22.1 was just patched yesterday in react-hook-form/resolvers
. https://github.com/react-hook-form/resolvers/commit/e5e73466e0f2e098c022ef9c373d5fa82cea7306#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519L257-R256
It has not been pushed to npm yet.
zod@3.21.4 worked for me
I think a solution for zod@3.22.1 was just patched yesterday in react-hook-form/resolvers. https://github.com/react-hook-form/resolvers/commit/e5e73466e0f2e098c022ef9c373d5fa82cea7306#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519L257-R256
It has not been pushed to npm yet.
The maintainer just released it. But I can confirm it does not fix the issue :( Same issue with zod@3.22.2 and @hookform/resolvers@3.3.0
In the context of a monorepo my team was able to fix it by adding a nohoist
option to the proper workspace for @hookform/resolvers
.
"workspaces": {
"nohoist": [
"@hookform/resolvers"
]
}
zod@3.21.4 and @hookform/resolvers: ^3.3.0 worked for me
In the context of a monorepo my team was able to fix it by adding a
nohoist
option to the proper workspace for@hookform/resolvers
."workspaces": { "nohoist": [ "@hookform/resolvers" ] }
I don't understand why this fixes it? Although I have not tried your suggestion, all the related package versions in my monorepo have the same version. So this should not be needed, right?
I'm still having this issue on v3.21.0 -> 3.22.1. I'm using Zod with VeeValidate in Nuxt. Example below:
const passwordSchema = z.object({
currentPassword: z.string(),
newPassword: z.string().min(8),
confirmNewPassword: z.string().min(8),
});
const validationSchema = toTypedSchema(passwordSchema);
On the last line, I get a TS error on passwordSchema
saying:
Argument of type 'ZodObject<{ currentPassword: ZodString; newPassword: ZodString; confirmNewPassword: ZodString; }, "strip", ZodTypeAny, { currentPassword: string; newPassword: string; confirmNewPassword: string; }, { ...; }>' is not assignable to parameter of type 'ZodType<any, ZodTypeDef, any>'.
The types of 'refine(...)._def.typeName' are incompatible between these types. ts(2345)
I didn't have this error until recently, so I wonder if it is an issue with a related dependency?
zod@3.21.4 and @hookform/resolvers: ^3.3.0 worked for me
this is working for me as well, version 3.22.2 of zod was not. Thanks! 🎉
zod@3.21.4 and @hookform/resolvers: ^3.3.0 worked for me
Same here
zod@3.21.4 and @hookform/resolvers: ^3.3.0 worked for me
Same here
Same, but why is it broken on the latest version
Same issue, currently using zod@3.22.2 and @hookform/resolvers: ^3.3.1
Same issue, currently using zod@3.22.2 and @hookform/resolvers: ^3.3.1
Same issue I am now using zod@3.21.4 and @hookform/resolvers: ^3.1.0 Upgrade, reload vscode and it will work
Developer Community Rocks :)
npm install zod@3.21.4
"@hookform/resolvers": "^3.3.1"
zod@3.21.4 and @hookform/resolvers: ^3.3.0 worked for me
Same, but why is it broken on the latest version
workarround is downgrade to zod@3.21.4
thnks guys
"zod": "^3.21.4"
"@hookform/resolvers": "^3.3.1"
this is what worked here, after restarting vscode, thx
This worked for me
remove node_modules
pnpm store prune
pnpm install
I just remove the node modules and the lock file. That worked for me too
This worked for me remove
node_modules
pnpm store prune pnpm install
This worked for me but wasn't immediately apparent; I had to Reload windows
in VS Code.
Zod v3.22.3 is out and I now get no linting errors 😊 Thanks!
const passwordSchema = z.object({ currentPassword: z.string(), newPassword: z.string().min(8), confirmNewPassword: z.string().min(8), }); const validationSchema = toTypedSchema(passwordSchema);
I've upgraded to Zod 3.22.3 and it seems to have fixed the issue (or at least changed the error message). With the example above, I now get the message Type instantiation is excessively deep and possibly infinite.ts (2589)
In case anyone else is being daft like me - I encountered this error in my monorepo (turborepo). I had forgotten to install zod to one of the places I was using it.
Updating to the latest zod 3.22.4 fixed it for me 👍
In my case this is my code
const FormSchema = z.object({
firstname: z.string({
required_error: "Nombre es requerido",
}).min(3, {
message: "Nombre debe tener al menos 3 letras",
}),
lastname: z.string({
required_error: "Apellidos son requeridos",
}).min(3, {
message: "Nombre debe tener al menos 3 letras",
}),
cc: z.coerce.number({
required_error: "Documento es requerido",
invalid_type_error: "El documento debe ser numérico",
}).int().gte(10000000, {
message: "Cedula debe tener al menos 8 digitos",
}).lte(9999999999, {
message: "Cedula no puede tener más de 10 digitos",
}),
phone: z.coerce.number({
required_error: "Teléfono requerido",
invalid_type_error: "El teléfono debe ser numérico",
}).int().gte(3000000000).lte(3299999999),
contactPhone: z.coerce.number({
required_error: "Teléfono requerido",
invalid_type_error: "El teléfono debe ser numérico",
}).int().gte(3000000000).lte(3299999999),
contactName: z.string({
required_error: "Nombre contacto es requerido",
}).min(3, {
message: "Nombre debe tener al menos 3 letras",
}),
rh: z.string({
required_error: "Por favor seleccione un grupo sanguíneo",
}).min(2).max(3),
birthdate: z.date({
required_error: "Fecha de nacimiento es requerida",
}),
bio: z
.string()
.min(10, {
message: "Información debe tener al menos 10 carácteres",
})
.max(160, {
message: "Información no debe tener más de 160 carácteres",
}),
eps: z.string({
required_error: "Por favor seleccione una EPS",
}),
});
const form = useForm<z.infer<typeof FormSchema>>({
resolver: zodResolver(FormSchema),
})
I'm working with Zod 3.22.4, but still have the issue
Argument of type 'ZodObject<{ firstname: ZodString; lastname: ZodString; cc: ZodNumber; phone: ZodNumber; contactPhone: ZodNumber; contactName: ZodString; rh: ZodString; birthdate: ZodDate; bio: ZodString; eps: ZodString; }, "strip", ZodTypeAny, { ...; }, { ...; }>' is not assignable to parameter of type 'ZodType<any, any, any>'.
The types of 'refine(...)._def.typeName' are incompatible between these types.
Type 'import("C:/Users/hemag/OneDrive/Documents/GitHub/volt-riders/node_modules/.pnpm/zod@3.22.4/node_modules/zod/lib/types").ZodFirstPartyTypeKind.ZodEffects' is not assignable to type 'Zod.ZodFirstPartyTypeKind.ZodEffects'.
Property 'ZodReadonly' is missing in type 'Zod.ZodFirstPartyTypeKind'.ts(2345)
This worked for me remove
node_modules
pnpm store prune pnpm install
This definitely works even with latest packages version:
"zod": "^3.22.4" "@hookform/resolvers": "^3.3.2",
3.22.4
and rm -rf node_modules
did not fix it for me.
Downgrade to 3.21.4
works.
EDIT: I had a library using 3.21.4
that was exposing a Zod type. Updating the library to 3.22.4
fixed it too. Can now use 3.22.4
.
Downgrading to 3.21.4 works for me, 3.22.4 does not.
3.22.4 not working for me as well
This worked for me remove
node_modules
pnpm store prune pnpm install
thanks, this works
My case was in a monorepo with zod types for an express API used with Sveltekit-Superforms where the package wouldn't have context on the zod schemas as they'd be any, but the v3.21.4 version throughout all packages worked wonders 🎉
"zod": "link:@hookform/resolvers/zod"
This works for me.
masonbrothers commented Aug 16, 2023 •
works thanks 🥲
I've created this
schema
to use inReact Hook Form
, but I'm getting an error that I'm not sure how to fix.The error coming back is: