क्या आप 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);
सर्वोत्तम प्रथाएं 🎓
- बेहतर एरर हैंडलिंग के लिए
parse
की तुलना में safeParse
को प्राथमिकता दें:
typescript
1const result = userSchema.safeParse(data);
2if (!result.success) {
3 console.log(result.error.issues);
4 return;
5}
6// result.data का सुरक्षित उपयोग करें
- बेहतर रखरखाव के लिए स्कीमा का पुन: उपयोग करें:
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 के बारे में अपना ज्ञान बढ़ाने के लिए आधिकारिक दस्तावेज़ीकरण देखने में संकोच न करें!