ts-toolkit TypeScript: पूर्ण गाइड उदाहरण सहित

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

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

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

ts-toolkit for TypeScript: पूर्ण गाइड

1. यह क्या है और क्यों ज़रूरी है

ts-toolkit TypeScript के लिए एक शक्तिशाली उपयोगिता लाइब्रेरी है, जो डेवलपर्स की रोज़मर्रा की समस्याओं को सरल बनाने के लिए बनाई गई है। यह तैयार फंक्शन, टाइप और क्लास का एक सेट प्रदान करती है जो ऑब्जेक्ट, ऐरे, स्ट्रिंग, फंक्शन और डेटा टाइप के साथ अधिक कुशल और सुरक्षित तरीके से काम करने में मदद करता है। JavaScript की मानक लाइब्रेरी के विपरीत, ts-toolkit पूरी तरह से TypeScript की टाइप सिस्टम के अनुकूल सख्ती से टाइप किए गए समाधान प्रदान करता है।

यह लाइब्रेरी क्यों ज़रूरी है? आधुनिक TypeScript डेवलपमेंट में अक्सर रूटीन ऑपरेशन करने की ज़रूरत होती है: ऑब्जेक्ट की डीप कॉपी, नेस्टेड स्ट्रक्चर में सुरक्षित नेविगेशन, रनटाइम पर टाइप चेकिंग, Option/Result (एरर हैंडलिंग के लिए मोनाड) और भी बहुत कुछ। ts-toolkit इन पैटर्न को लागू करता है, जिससे डेवलपर बिज़नेस लॉजिक पर ध्यान केंद्रित कर सकता है। यह लाइब्रेरी उन प्रोजेक्ट्स में विशेष रूप से उपयोगी है जहाँ उच्च विश्वसनीयता और सख्त टाइपिंग की आवश्यकता होती है।

ts-toolkit का मुख्य लाभ टाइप सुरक्षा (type safety) है। प्रत्येक फंक्शन को TypeScript की क्षमताओं का अधिकतम उपयोग करने के लिए डिज़ाइन किया गया है: कंडीशनल टाइप, मैप्ड टाइप, infer और अन्य उन्नत कंस्ट्रक्ट। इसका मतलब है कि कई त्रुटियाँ जो केवल रनटाइम में दिखाई देती थीं, अब कंपाइलेशन के समय ही पकड़ी जा सकती हैं।

2. इंस्टॉलेशन

लाइब्रेरी को npm पैकेज मैनेजर के माध्यम से इंस्टॉल करें:

npm install @tool-belt/ts-toolkit

या yarn के माध्यम से:

yarn add @tool-belt/ts-toolkit

इंस्टॉल करने के बाद, अपने प्रोजेक्ट में आवश्यक फंक्शन इम्पोर्ट करें:

import { deepClone, safeGet, pipe } from '@tool-belt/ts-toolkit';

3. त्वरित शुरुआत

लाइब्रेरी की मुख्य क्षमताओं को दर्शाने वाला एक न्यूनतम कार्यशील उदाहरण:

import { deepClone, isObject, pipe } from '@tool-belt/ts-toolkit';

// उदाहरण 1: डीप कॉपी
const original = { a: 1, b: { c: 2 } };
const cloned = deepClone(original);
cloned.b.c = 42;
console.log(original.b.c); // 2 (मूल ऑब्जेक्ट अपरिवर्तित)

// उदाहरण 2: टाइप जाँच
console.log(isObject({}));   // true
console.log(isObject(null)); // false

// उदाहरण 3: फंक्शन कंपोज़िशन
const addOne = (x: number) => x + 1;
const double = (x: number) => x * 2;
const addOneThenDouble = pipe(addOne, double);
console.log(addOneThenDouble(5)); // 12

4. मुख्य तरीके और फंक्शन

4.1. deepClone

सिग्नेचर: function deepClone<T>(value: T): T

विवरण: किसी भी मान की डीप कॉपी करता है, जिसमें नेस्टेड ऑब्जेक्ट, ऐरे, डेट, Map, Set और अन्य स्ट्रक्चर शामिल हैं। साइक्लिक रेफरेंस को भी सपोर्ट करता है।

import { deepClone } from '@tool-belt/ts-toolkit';

const user = {
  name: 'Alice',
  address: { city: 'NYC', zip: 10001 },
  hobbies: ['reading', 'coding']
};

const clonedUser = deepClone(user);
clonedUser.address.city = 'LA';
console.log(user.address.city); // 'NYC'

4.2. safeGet

सिग्नेचर: function safeGet<T, K extends keyof T>(obj: T, key: K): T[K] | undefined

विवरण: ऑब्जेक्ट के प्रॉपर्टी मान को सुरक्षित रूप से प्राप्त करता है। यदि प्रॉपर्टी मौजूद नहीं है या ऑब्जेक्ट null/undefined है, तो एरर फेंकने के बजाय undefined लौटाता है।

import { safeGet } from '@tool-belt/ts-toolkit';

const data = { user: { name: 'Bob' } };
const name = safeGet(data, 'user')?.name; // 'Bob'
const missing = safeGet(null, 'anything'); // undefined

4.3. pipe

अनुशंसाएँ