Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enum parsing error: TypeError: Cannot read private member from an object whose class did not declare it (codesandbox repro included) #3611

Open
generalleger opened this issue Jul 2, 2024 · 1 comment

Comments

@generalleger
Copy link

Reproduction: https://codesandbox.io/p/sandbox/zod-test-d6y6ts

I recently upgraded to 3.23.x from 3.22.4 and starting getting this error:

TypeError: Cannot read private member from an object whose class did not declare it.

After some digging, I narrowed it down to ZodEnums parsing under specific circumstances. It happens when a ZodEnum has been deep cloned (in this case with lodash) and is then added as value of a ZodObject.

See the reproduction for details and some cases that do and don't work. It's the parsing on the last line that causes the error. Comment it out, and the error goes away.

Edit the package.json to 3.22.4 and the error also disappears.

I think this might be a related issue: #3520

Thanks!

@DeadOce4n
Copy link

I'm also experiencing this on 3.23.8, as a temporary workaround I'm using a union of string literals:

const myEnum = z.union([z.literal("someValue"), z.literal("otherValue")]);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants