Slide 15
Slide 15 text
ある型(右図では最終⾏の Types)
を定義するときに、不要な zod
schema (最後から 2 ⾏⽬)を介して
いた🥲
不要なスキーマ定義
export const typeASchema = z.object({
type: z.literal('A'),
name: z.string(),
});
export type TypeA = z.infer;
export const typeBSchema = z.object({
type: z.literal('B'),
count: z.number(),
});
export type TypeB = z.infer;
export const typeCSchema = z.object({
type: z.literal('C'),
value: z.string(),
});
export type TypeC = z.infer;
// ↓この typesSchema はただの中間介在物でしかない、、
const typesSchema = z.union([typeASchema, typeBSchema, typeCSchema]);
export type Types = z.infer;