ts-functional-pipe TypeScript: पूर्ण गाइड उदाहरणों के साथ
1. यह क्या है और क्यों ज़रूरी है?
ts-functional-pipe TypeScript के लिए एक हल्की-फुल्की लाइब्रेरी है, जो एक शक्तिशाली और टाइप-सेफ pipe ऑपरेटर और फंक्शनल कम्पोज़िशन के लिए उपयोगी टूल्स प्रदान करती है। JavaScript में प्रस्तावित |> ऑपरेटर (जो अभी तक मानकीकृत नहीं है) के विपरीत, यह लाइब्रेरी आज ही डेटा प्रोसेसिंग के लिए एक सुंदर और पढ़ने योग्य सिंटैक्स इस्तेमाल करने देती है। इसका मुख्य विचार नेस्टेड फंक्शन कॉल्स (f(g(h(x)))) को एक लीनियर चेन (pipe(x, h, g, f)) में बदलना है, जिससे कोड की पठनीयता और रखरखाव में काफी सुधार होता है।
यह क्यों ज़रूरी है? आधुनिक TypeScript डेवलपमेंट में, हमें अक्सर डेटा पर कई क्रमिक परिवर्तन करने होते हैं: फ़िल्टरिंग, मैपिंग, सॉर्टिंग, वैलिडेशन, ट्रांसफ़ॉर्मेशन। पाइप के बिना, ऐसा कोड नेस्टेड फंक्शन्स का "पिरामिड" या म्यूटेबल वेरिएबल्स की चेन बन जाता है। ts-functional-pipe डेटा फ्लो का वर्णन करने का एक डिक्लेरेटिव तरीका प्रदान करके इस समस्या को हल करता है। लाइब्रेरी पूरी तरह से टाइप की गई है, जिसका मतलब है कि TypeScript पाइप के हर चरण पर टाइप्स की जाँच करेगा, कम्पाइल टाइम पर ही एरर्स को रोक देगा।
यह लाइब्रेरी उन प्रोजेक्ट्स में विशेष रूप से उपयोगी है जहाँ फंक्शनल अप्रोच का उपयोग किया जाता है: ऐरे प्रोसेसिंग, Observable (RxJS) के साथ काम, API रिस्पॉन्स ट्रांसफ़ॉर्मेशन, मिडलवेयर बनाना और भी बहुत कुछ। यह कोई पैराडाइम नहीं थोपती, बल्कि फंक्शन कम्पोज़िशन के लिए एक सुविधाजनक टूल देती है। ts-functional-pipe सिर्फ pipe नहीं है, बल्कि हेल्पर फंक्शन्स का एक पूरा सेट है जो TypeScript में फंक्शनल प्रोग्रामिंग को आरामदायक और सुरक्षित बनाता है।
2. इंस्टॉलेशन
लाइब्रेरी को स्टैंडर्ड पैकेज मैनेजर npm (या yarn/pnpm) के माध्यम से इंस्टॉल किया जाता है। लाइब्रेरी TypeScript में लिखी गई है और तैयार टाइप डिक्लेरेशन फाइलों के साथ आती है, इसलिए अलग से @types इंस्टॉल करने की आवश्यकता नहीं है।
# npm के माध्यम से इंस्टॉलेशन
npm install ts-functional-pipe
# yarn के माध्यम से इंस्टॉलेशन
yarn add ts-functional-pipe
# pnpm के माध्यम से इंस्टॉलेशन
pnpm add ts-functional-pipe
इंस्टॉल करने के बाद, आप अपने प्रोजेक्ट में आवश्यक फंक्शन्स को इम्पोर्ट कर सकते हैं:
import { pipe, compose, map, filter, reduce } from 'ts-functional-pipe';
3. त्वरित शुरुआत — एक न्यूनतम कार्यशील उदाहरण
चलिए सबसे सरल उदाहरण से शुरू करते हैं: एक संख्या पर कई ऑपरेशन लागू करना। लाइब्रेरी के बिना, यह Math.sqrt(Math.abs(-25)) जैसा दिखेगा। ts-functional-pipe के साथ, हम इसे लीनियर तरीके से लिख सकते हैं:
import { pipe } from 'ts-functional-pipe';
// सरल फंक्शन्स परिभाषित करें
const addOne = (x: number): number => x + 1;
const double = (x: number): number => x * 2;
const toString = (x: number): string => `परिणाम: ${x}`;
// क्रमिक रूप से लागू करने के लिए pipe का उपयोग करें
const result = pipe(
5, // शुरुआती मान
addOne, // 5 + 1 = 6
double, // 6 * 2 = 12
toString // "परिणाम: 12"
);
console.log(result); // आउटपुट: "परिणाम: 12"
जैसा कि आप देख सकते हैं, कोड ऊपर से नीचे पढ़ा जाता है, जो नेस्टेड कॉल्स की तुलना में कहीं अधिक सहज है। pipe स्वचालित रूप से पिछले फंक्शन के परिणाम को अगले फंक्शन के आर्गुमेंट के रूप में पास करता है।
4. मुख्य तरीके/फंक्शन्स
लाइब्रेरी फंक्शन्स का एक समृद्ध सेट प्रदान करती है। आइए उनमें से 8 प्रमुख फंक्शन्स को देखें।
4.1. pipe
पुस्तकालय में भी
Kotlin Symbol Processing (KSP) गाइड: कोटलिन कोड जनरेशन का पूरा ट्यूटोरियल
C# (.NET) में कार्य कतारें: System.Threading.Channels, Hangfire और RabbitMQ
TypeDoc TypeScript: पूरी गाइड उदाहरणों के साथ
ts-toolkit TypeScript: पूर्ण गाइड उदाहरण सहित
TypeScript में छवियों के साथ कार्य: लाइब्रेरीज़, उपकरण और कोड उदाहरण