格式错误
Zod 强调其错误报告的完整性和正确性。在许多情况下,将 $ZodError 转换为更有用的格式会很有帮助。Zod 为此提供了一些实用程序。
¥Zod emphasizes completeness and correctness in its error reporting. In many cases, it's helpful to convert the $ZodError to a more useful format. Zod provides some utilities for this.
考虑这个简单的对象模式。
¥Consider this simple object schema.
尝试解析此无效数据会导致包含三个问题的错误。
¥Attempting to parse this invalid data results in an error containing three issues.
z.treeifyError()
要将此错误 ("treeify") 转换为嵌套对象,请使用 z.treeifyError()。
¥To convert ("treeify") this error into a nested object, use z.treeifyError().
结果是一个嵌套结构,它镜像了模式本身。你可以轻松访问特定路径下发生的错误。errors 字段包含给定路径的错误消息,特殊属性 properties 和 items 允许你更深入地遍历树。
¥The result is a nested structure that mirrors the schema itself. You can easily access the errors that occurred at a particular path. The errors field contains the error messages at a given path, and the special properties properties and items let you traverse deeper into the tree.
请务必使用可选链 (?.) 来避免访问嵌套属性时出错。
¥Be sure to use optional chaining (?.) to avoid errors when accessing nested properties.
z.prettifyError()
z.prettifyError() 提供错误信息的人性化字符串表示。
¥The z.prettifyError() provides a human-readable string representation of the error.
这将返回以下字符串:
¥This returns the following string:
z.formatError()
此方法已被弃用,取而代之的是 z.treeifyError()。
¥This has been deprecated in favor of z.treeifyError().
z.flattenError()
虽然 z.treeifyError() 对于遍历可能复杂的嵌套结构很有用,但大多数模式都是扁平的 - 只有一层深度。在这种情况下,使用 z.flattenError() 检索干净、浅层的错误对象。
¥While z.treeifyError() is useful for traversing a potentially complex nested structure, the majority of schemas are flat—just one level deep. In this case, use z.flattenError() to retrieve a clean, shallow error object.
formErrors 数组包含任何顶层错误(其中 path 为 [])。fieldErrors 对象为模式中的每个字段提供了一个错误数组。
¥The formErrors array contains any top-level errors (where path is []). The fieldErrors object provides an array of errors for each field in the schema.

