Zod TypeScript: पूरी गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Zod का परिचय: यह क्या है और क्यों ज़रूरी है

आधुनिक TypeScript वेब डेवलपमेंट में, डेटा की अखंडता सुनिश्चित करना एक प्रमुख चुनौती है। सख्त टाइपिंग के बावजूद, TypeScript यह गारंटी नहीं दे सकता कि बाहरी स्रोतों (API, फॉर्म, localStorage, WebSocket) से आने वाला डेटा वास्तव में बताए गए प्रकारों से मेल खाता है। TypeScript कंपाइलर डेवलपमेंट चरण में काम करता है, लेकिन प्रोग्राम रनटाइम के दौरान टाइप मिट जाते हैं। यहीं पर Zod मददगार साबित होता है।

Zod TypeScript और JavaScript के लिए एक डिक्लेरेटिव डेटा वैलिडेशन और टाइपिंग लाइब्रेरी है। यह आपको स्कीमा (schemas) बनाने की अनुमति देता है जो रनटाइम पर डेटा वैलिडेटर और TypeScript स्टैटिक टाइप्स के लिए सत्य स्रोत दोनों के रूप में काम करते हैं। Zod का मुख्य दर्शन है "एक स्कीमा, दो उद्देश्य": आप एक बार स्कीमा लिखते हैं, और वैलिडेशन और ऑटोमैटिकली इन्फर्ड टाइप दोनों प्राप्त करते हैं।

Zod के मुख्य लाभ:

  • टाइप सुरक्षा: स्कीमा से ऑटोमैटिक TypeScript टाइप इन्फरेंस।
  • डिक्लेरेटिव: पढ़ने में आसान और संक्षिप्त सिंटैक्स।
  • कम्पोज़िशनल: स्कीमा को जोड़ा और विस्तारित किया जा सकता है।
  • विस्तृत त्रुटियाँ: वैलिडेशन त्रुटियों के स्पष्ट संदेश।
  • शून्य निर्भरता: लाइब्रेरी को अतिरिक्त पैकेज की आवश्यकता नहीं है।

Zod इंस्टॉलेशन

Zod एक npm पैकेज है, इसलिए इसे Node.js पैकेज मैनेजर के माध्यम से इंस्टॉल किया जाता है। लाइब्रेरी TypeScript में लिखी गई है और तैयार टाइप डिक्लेरेशन फ़ाइलों के साथ आती है, इसलिए @types/zod की अतिरिक्त इंस्टॉलेशन की आवश्यकता नहीं है।

# npm के माध्यम से इंस्टॉलेशन
npm install zod

# yarn के माध्यम से इंस्टॉलेशन
yarn add zod

# pnpm के माध्यम से इंस्टॉलेशन
pnpm add zod

इंस्टॉलेशन के बाद, आप अपने प्रोजेक्ट में Zod इम्पोर्ट कर सकते हैं:

import { z } from "zod";

ध्यान दें: Zod pip के माध्यम से इंस्टॉल नहीं होता, क्योंकि यह JavaScript/TypeScript इकोसिस्टम के लिए है, Python के लिए नहीं।

कोड उदाहरण के साथ त्वरित शुरुआत

आइए यूज़र डेटा वैलिडेशन के लिए एक सरल स्कीमा बनाएं और देखें कि Zod कैसे वैलिडेशन और टाइपिंग को जोड़ता है।

import { z } from "zod";

// 1. स्कीमा परिभाषित करें
const UserSchema = z.object({
    id: z.number().positive(),
    name: z.string().min(2, "नाम में कम से कम 2 अक्षर होने चाहिए"),
    email: z.string().email("अमान्य ईमेल"),
    age: z.number().int().min(18, "उम्र कम से कम 18 वर्ष होनी चाहिए").optional(),
});

// 2. स्कीमा से ऑटोमैटिक टाइप इन्फर करें
type User = z.infer<typeof UserSchema>;

// 3. डेटा वैलिडेट करें
const validData = {
    id: 1,
    name: "अन्ना",
    email: "anna@example.com",
    age: 25,
};

const result = UserSchema.safeParse(validData);

if (result.success) {
    // result.data का टाइप User है
    console.log("वैलिडेशन सफल:", result.data);
} else {
    // result.error में त्रुटियों की विस्तृत जानकारी है
    console.log("वैलिडेशन त्रुटियाँ:", result.error.errors);
}

// गलत डेटा का उदाहरण
const invalidData = {
    id: -1,
    name: "अ",
    email: "ईमेल-नहीं",
};

const invalidResult = UserSchema.safeParse(invalidData);
if (!invalidResult.success) {
    console.log("त्रुटियाँ:", invalidResult.error.errors);
    // आउटपुट:
    // - id: सकारात्मक संख्या होनी चाहिए
    // - name: नाम में कम से कम 2 अक्षर होने चाहिए
    // - email: अमान्य ईमेल
}

Zod के मुख्य तरीके और फ़ंक्शन

इस भाग में, हम Zod के 10 प्रमुख तरीकों पर विस्तार से चर्चा करेंगे जो आपके 90% वैलिडेशन कार्यों को कवर करेंगे।

1. z.string() — स्ट्रिंग वैलिडेशन

क्या करता है: स्ट्रिंग मानों के वैलिडेशन के लिए स्कीमा बनाता है। अतिरिक्त प्रतिबंध लगाने के लिए मेथड चेन प्रदान करता है।

पैरामीटर: बनाते समय कोई पैरामीटर नहीं लेता। मेथड चेन: .min(), .max(), .length(),

अनुशंसाएँ