- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这种类型:
export interface ConnectorForModel {
_type: "connector.for.model",
connectorDefinitionId: string
}
我想建模为 zod
架构。实际上我正在使用 toZod
,像这样:
export const ConnectorForModelZod: toZod<ConnectorForModel> = z.object({
_type: z.literal("connector.for.model"),
connectorDefinitionId: z.string()
});
我得到了这个类型错误:
Type 'ZodLiteral<"connector.for.model">' is not assignable to type 'never'.
正确的表达方式是什么?
最佳答案
我认为最快的方法是使用 ZodType
:
import { z } from "zod";
export interface ConnectorForModel {
_type: "connector.for.model";
connectorDefinitionId: string;
}
export const ConnectorForModelZod: z.ZodType<ConnectorForModel> = z.object({
_type: z.literal("connector.for.model"),
connectorDefinitionId: z.string()
});
旁白:我倾向于根据我的 zod
架构定义我的类型,而不是相反。如果您无法控制您正在使用的类型,那么给定的方法就是可行的方法,但您可以避免使用 zod 上的 z.TypeOf
两次编写相同的代码模式
type ConnectorForModel = z.TypeOf<typeof ConnectorForModelZod>;
此类型等同于您的接口(interface)。
关于zod(或 toZod): how to model "type" field in discriminated union,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73021231/
我有数字或数字字符串,我想将它转换为数字并继续通过 .min() .max() 验证它,但它不起作用正如我所料 const numberValid = z.number().or(z.string()
我无法弄清楚如何使用 Zod 检查数字的位数。 由于我将字符串值转换为数字,因此无法使用 min() 或 max() 来检查位数。 在构建架构时,我尝试使用 lte() 和 gte() 进行以下操作:
我有以下 zod 架构,在某些情况下,我想从架构中完全省略一个字段。我不能让它成为可选的。我怀疑有一些方法可以直接用 zod 来完成。有没有办法省略字段或以某种方式预处理模式? 例如,我如何在没有这个
所以我想从 Zod 中的数组中的对象的键中获取类型。该数组还嵌套在一个对象中,只是为了让事情变得更加困难。 这是我遇到的问题的抽象 View : const obj = z.object({ ne
我想使用 z.nativeEnum() 验证 Zod 的性别字段,但我的自定义错误消息不适用: gender: z.nativeEnum(Gender, { invalid_type_
我想使用 z.nativeEnum() 验证 Zod 的性别字段,但我的自定义错误消息不适用: gender: z.nativeEnum(Gender, { invalid_type_
我使用 JOI 实现了这段代码,其中用户必须发送 userId 和至少一个来自正文的键。如何使用 ZOD 实现同样的功能?? params: Joi.object().keys({ use
我有一个使用 zod 的应用程序,但我想使用来自不同库(validator.js)的一些方法 zod 文档说: 查看 validator.js 以了解其他一些有用的字符串验证功能。 不确定这是否意味着
我有这种类型: export interface ConnectorForModel { _type: "connector.for.model", connectorDefiniti
我创建了一个客户注册表,但所有来自我的“错误”的“消息”都会按要求发送。有人知道这会是什么吗?我在Zod或Reaction-Hook-Form中设置的错误。下面我将留下代码的指纹。。这是我的通用输入组
我是一名优秀的程序员,十分优秀!