2 मिनट में Zod को समझें: TypeScript में स्कीमा वैलिडेशन

क्या आप TypeScript में अपने डेटा को वैलिडेट करने का एक सरल और प्रभावी तरीका खोज रहे हैं? Zod को जानें, एक लाइब्रेरी जो डेटा वैलिडेशन को क्रांतिकारी बना देगी। महज 2 मिनट में, आप समझ जाएंगे कि Zod क्यों अनिवार्य बन गया है!

Zod क्यों? 🎯

Zod एक वैलिडेशन लाइब्रेरी है जो इन विशेषताओं के लिए जानी जाती है:

  • सहज और संक्षिप्त सिंटैक्स
  • TypeScript के साथ पूर्ण एकीकरण
  • स्वचालित टाइप इन्फरेंस
  • स्पष्ट और अनुकूलन योग्य एरर मैसेज

त्वरित इंस्टालेशन ⚙️

bash
1npm install zod
2# या
3yarn add zod

30 सेकंड में Zod की मूल बातें 🚀

typescript
1import { z } from 'zod';
2
3// सरल स्कीमा परिभाषा
4const userSchema = z.object({
5 name: z.string().min(2, 'नाम में कम से कम 2 अक्षर होने चाहिए'),
6 age: z.number().min(18, 'उपयोगकर्ता वयस्क होना चाहिए'),
7 email: z.string().email('अमान्य ईमेल फॉर्मेट'),
8});
9
10// टाइप स्वचालित रूप से इन्फर्ड!
11type User = z.infer<typeof userSchema>;
12
13// डेटा वैलिडेशन
14const validateUser = (data: unknown) => {
15 const result = userSchema.safeParse(data);
16 return result.success ? result.data : result.error.issues;
17};

उन्नत सुविधाएं 💪

सशर्त वैलिडेशन

typescript
1const formSchema = z
2 .object({
3 type: z.enum(['individual', 'business']),
4 taxId: z.string().optional(),
5 })
6 .refine((data) => !(data.type === 'business' && !data.taxId), {
7 message: 'व्यवसायों के लिए टैक्स आईडी आवश्यक है',
8 });

स्वचालित परिवर्तन

typescript
1const dateSchema = z.string().transform((str) => new Date(str));
2const numberSchema = z.string().transform(Number);

सर्वोत्तम प्रथाएं 🎓

  1. बेहतर एरर हैंडलिंग के लिए parse की तुलना में safeParse को प्राथमिकता दें:
typescript
1const result = userSchema.safeParse(data);
2if (!result.success) {
3 console.log(result.error.issues);
4 return;
5}
6// result.data का सुरक्षित उपयोग करें
  1. बेहतर रखरखाव के लिए स्कीमा का पुन: उपयोग करें:
typescript
1const addressSchema = z.object({
2 street: z.string(),
3 city: z.string(),
4 zipCode: z.string().regex(/^\d{5}$/),
5});
6
7const userSchema = z.object({
8 // ...अन्य फील्ड्स
9 address: addressSchema,
10});

सामान्य उपयोग के मामले 📋

API वैलिडेशन

typescript
1const apiResponseSchema = z.object({
2 status: z.number(),
3 data: z.array(userSchema),
4 metadata: z.record(z.string()),
5});
6
7async function fetchUsers() {
8 const response = await fetch('/api/users');
9 const data = await response.json();
10
11 const result = apiResponseSchema.safeParse(data);
12 if (!result.success) {
13 throw new Error('अमान्य API प्रतिक्रिया');
14 }
15
16 return result.data;
17}

फॉर्म वैलिडेशन

typescript
1const loginSchema = z.object({
2 email: z.string().email(),
3 password: z.string().min(8),
4});
5
6function handleSubmit(formData: unknown) {
7 const result = loginSchema.safeParse(formData);
8 if (!result.success) {
9 // त्रुटियां प्रदर्शित करें
10 return;
11 }
12 // वैलिडेटेड डेटा को प्रोसेस करें
13}

आगे की जानकारी 🎈

सारांश ✨

Zod टाइप सुरक्षा सुनिश्चित करते हुए TypeScript में डेटा वैलिडेशन को काफी सरल बनाता है। इसका सहज सिंटैक्स और लचीलापन इसे किसी भी TypeScript डेवलपर के लिए एक मूल्यवान टूल बनाता है।


Zod के बारे में अपना ज्ञान बढ़ाने के लिए आधिकारिक दस्तावेज़ीकरण देखने में संकोच न करें!

इस लेख को साझा करें


Sébastien Timoner

Sébastien TIMONER

लीड डेवलपर
कस्टम डेवलपमेंट विशेषज्ञ
Aix-en-Provence, France

वेब विकास और तकनीकी टीम प्रबंधन में विशेषज्ञ, मैं प्रभावी डिजिटल समाधानों के निर्माण और अनुकूलन में विशेषज्ञता रखता हूं। React.js, Node.js, TypeScript और Symfony जैसी आधुनिक तकनीकों की गहरी समझ के साथ, मैं offroadLabs में विभिन्न क्षेत्रों की कंपनियों के लिए जटिल SaaS परियोजनाओं की सफलता सुनिश्चित करता हूं, डिजाइन से लेकर प्रोडक्शन तक।

offroadLabs में, मैं तकनीकी विशेषज्ञता और सहयोगात्मक दृष्टिकोण को जोड़ते हुए कस्टम विकास सेवाएं प्रदान करता हूं। चाहे एक नवीन SaaS समाधान बनाना हो, मौजूदा एप्लिकेशन को आधुनिक बनाना हो, या एक टीम के कौशल विकास में सहायता करना हो, मैं प्रत्येक परियोजना की विशिष्ट आवश्यकताओं के अनुरूप मजबूत और प्रभावी समाधान प्रदान करने के लिए प्रतिबद्ध हूं।

मैं ऐक्स-एन-प्रोवेंस के आसपास या पूर्ण रिमोट असाइनमेंट के लिए उपलब्ध हूं।