typia क्या है और इसकी आवश्यकता क्यों है?
typia TypeScript के लिए एक शक्तिशाली लाइब्रेरी है जो runtime टाइप वैलिडेशन (runtime type validation) प्रदान करती है, जिसकी एक अनोखी विशेषता है: यह कंपाइल-टाइम (compile-time) पर वैलिडेशन कोड जनरेट करती है, न कि रनटाइम के दौरान। यह इसे TypeScript इकोसिस्टम में डेटा वैलिडेशन के लिए सबसे तेज़ लाइब्रेरीज़ में से एक बनाती है।
typia द्वारा हल की जाने वाली मुख्य समस्याएं:
- परफॉरमेंस: लोकप्रिय लाइब्रेरीज़ (zod, yup, io-ts) के विपरीत, typia रिफ्लेक्शन या डेकोरेटर का उपयोग नहीं करती। इसके बजाय, यह बिल्ड के समय ऑप्टिमाइज़्ड वैलिडेशन कोड जनरेट करती है, जिससे स्पीड में 10-100 गुना का सुधार होता है।
- टाइप सेफ्टी: आपको गारंटी मिलती है कि बाहरी स्रोतों (API, डेटाबेस, फॉर्म) से आने वाला डेटा आपके TypeScript इंटरफेस के अनुरूप है।
- न्यूनतम बॉयलरप्लेट: आपको अलग से वैलिडेशन स्कीमा लिखने की ज़रूरत नहीं है - typia आपके मौजूदा TypeScript टाइप्स का उपयोग करती है।
- जटिल टाइप्स का सपोर्ट: Union, intersection, conditional types, mapped types - ये सब "बॉक्स से बाहर" काम करते हैं।
यह लाइब्रेरी विशेष रूप से उपयोगी है:
- Node.js पर TypeScript के साथ बैकएंड डेवलपमेंट के लिए
- फ्रंटएंड एप्लिकेशन जहां फॉर्म या API रिस्पॉन्स का वैलिडेशन आवश्यक है
- माइक्रोसर्विस आर्किटेक्चर जहां सीरियलाइज़ेशन/डीसीरियलाइज़ेशन की गति महत्वपूर्ण है
- उन प्रोजेक्ट्स के लिए जहां परफॉरमेंस और टाइप सेफ्टी महत्वपूर्ण है
इंस्टॉलेशन
typia की इंस्टॉलेशन दो चरणों में होती है: लाइब्रेरी और TypeScript ट्रांसफॉर्मर (कंपाइलर)।
चरण 1. npm के माध्यम से इंस्टॉलेशन
npm install typia
# या
yarn add typia
# या
pnpm add typia
चरण 2. ट्रांसफॉर्मर इंस्टॉल करें
npm install --save-dev typia-transform
# या
yarn add -D typia-transform
# या
pnpm add -D typia-transform
चरण 3. tsconfig.json कॉन्फ़िगर करें
अपने tsconfig.json में प्लगइन जोड़ें:
{
"compilerOptions": {
"plugins": [
{
"transform": "typia-transform"
}
]
}
}
चरण 4. ttypescript का उपयोग (अनुशंसित)
ऑटोमैटिक ट्रांसफॉर्मेशन के लिए ttypescript इंस्टॉल करें:
npm install --save-dev ttypescript
फिर अपने package.json स्क्रिप्ट्स में tsc को ttsc से बदलें:
{
"scripts": {
"build": "ttsc",
"start": "node dist/index.js"
}
}
महत्वपूर्ण: typia के लिए TypeScript संस्करण 4.4 या उससे ऊपर आवश्यक है। ट्रांसफॉर्मर के बिना लाइब्रेरी काम नहीं करेगी।
कोड उदाहरण के साथ त्वरित शुरुआत
आइए यूज़र डेटा वैलिडेशन का एक सरल उदाहरण बनाते हैं।
import typia from "typia";
// इंटरफेस परिभाषित करें
interface IUser {
id: number;
name: string;
email: string;
age: number;
isActive: boolean;
}
// वैलिडेशन फंक्शन बनाएं
const validateUser = typia.createValidate<IUser>();
// टेस्ट डेटा
const testData = {
id: 1,
name: "राहुल शर्मा",
email: "rahul@example.com",
age: 30,
isActive: true,
};
// वैलिडेशन
const result = validateUser(testData);
if (result.success) {
console.log("डेटा मान्य है:", result.data);
} else {
console.log("वैलिडेशन त्रुटि:", result.errors);
}
// गलत डेटा के साथ उदाहरण
const badData = {
id: "संख्या नहीं", // number होना चाहिए
name: "राहुल",
email: "ईमेल नहीं",
age: -5,
isActive: "हाँ", // boolean होना चाहिए
};
const badResult = validateUser(badData);
console.log("त्रुटियाँ:", badResult.errors);
यह उदाहरण दिखाता है कि केवल TypeScript इंटरफेस का उपयोग करके डेटा को मान्य करना कितना आसान है। कोई अतिरिक्त स्कीमा या डेकोरेटर की आवश्यकता नहीं!
मुख्य मेथड्स और फंक्शन्स
1. typia.createValidate<T>()
यह क्या करता है: टाइप T के लिए एक वैलिडेटर फंक्शन बनाता है। यह एक ऑब्जेक्ट लौटाता है