You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Zod原生方式合并两个Zod枚举类型?

Zod枚举合并方法解答

目前Zod并没有提供专门用于合并枚举的原生API,你现在使用的通过解构枚举的options属性来合并数组,再传入z.enum()的方式,就是最直接且被广泛认可的做法。

具体代码示例:

import { z } from "zod";

const Option1 = z.enum(["option1"]);
const Option2 = z.enum(["option2"]);

// 合并两个枚举
export const Options = z.enum([
  ...Option1.options,
  ...Option2.options,
]);

// 验证类型:Options 为 z.ZodEnum<["option1", "option2"]>

如果合并的枚举存在重复选项,可以通过Set来去重,避免无效的重复枚举值:

export const Options = z.enum([
  ...new Set([...Option1.options, ...Option2.options])
]);

这个方式本质上利用了Zod枚举的options属性会暴露枚举所有可选值数组的特性,是官方设计中支持的用法,无需额外的原生合并方法。

内容的提问来源于stack exchange,提问作者Gabriel Petersson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 20:51:34