Zod هي المكتبة الرائدة للتحقق من المخططات بأسلوب TypeScript أولاً، إذ توفّر تحققاً وقت التشغيل مع استنتاج كامل للأنواع.
الاستخدام الأساسي
import { z } from "zod";
// Define schema
const UserSchema = z.object({
name: z.string().min(2),
email: z.string().email(),
age: z.number().min(18).optional(),
});
// Infer TypeScript type
type User = z.infer<typeof UserSchema>;
// Validate data
const result = UserSchema.safeParse(input);
if (result.success) {
console.log(result.data); // Typed as User
} else {
console.log(result.error.issues);
}
أنماط متقدمة
// Transform data
const DateSchema = z.string().transform((str) => new Date(str));
// Custom validation
const PasswordSchema = z.string()
.min(8)
.refine((val) => /[A-Z]/.test(val), "Must contain uppercase")
.refine((val) => /[0-9]/.test(val), "Must contain number");
// Discriminated unions
const ResponseSchema = z.discriminatedUnion("status", [
z.object({ status: z.literal("success"), data: z.any() }),
z.object({ status: z.literal("error"), message: z.string() }),
]);
التحقق من النماذج
استخدمها مع React Hook Form أو غيرها من مكتبات النماذج للحصول على تحقق سلس ومتكامل.
التعليقات (0)
اترك تعليقًا
لا توجد تعليقات بعد. كن أول من يشارك أفكاره!