Saya mempunyai skema Zod untuk mengesahkan atribut produk untuk aplikasi e-dagang. Dalam skema saya, pada masa ini saya mempunyai atribut yang dipanggil isLimitedEdition
Walau bagaimanapun, apabila isLimitedEdition
ditetapkan kepada benar , saya mahu semua sifat lain dalam skema menjadi pilihan.
Ini ialah seni bina sedia ada:
const productProperties = z.object({ nama: z.string().nonempty(), perihalan: z.string().nonempty(), harga: z.number().positive(), kategori: z.string().nonempty(), jenama: z.string().nonempty(), isFeatured: z.boolean().default(false), isLimitedEdition: z.boolean().default(false), });
Dalam seni bina ini, saya ingin melaksanakan gelagat di mana jika isLimitedEdition ditetapkan kepada benar, semua sifat (nama, perihalan, harga, kategori, jenama, isFeatured) menjadi pilihan.
Bagaimanakah saya boleh mengubah suai skema ini untuk mencapai tingkah laku yang diingini? Saya akan berterima kasih atas sebarang panduan atau contoh kod untuk membantu saya melaksanakan logik ini dengan betul. Terima kasih terlebih dahulu!
Saya mencuba kaedah
Anda boleh menggunakan
discriminatedUnion
untuk mencapai ini: