प्रकारों के साथ फ़ंक्शन संयोजन
प्रकार सुरक्षा बनाए रखते हुए फ़ंक्शन संयोजित करें।
प्रकारों के साथ फ़ंक्शन संयोजन, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
संयोजन क्या है
फ़ंक्शन संयोजन छोटे फ़ंक्शनों को मिलाकर एक बड़ा फ़ंक्शन बनाता है। compose(f, g) ऐसा फ़ंक्शन बनाता है जो पहले g लागू करता है और फिर उसका परिणाम f को देता है।
मूल परिभाषा
गणितीय रूप से compose(f, g)(x) = f(g(x))। फ़ंक्शन दाएँ से बाएँ चलते हैं: सबसे दायाँ फ़ंक्शन पहले चलता है।
const compose = (f: (n: number) => number, g: (n: number) => number) =>
(x: number) => f(g(x));
const inc = (n: number) => n + 1;
const dbl = (n: number) => n * 2;
console.log(compose(inc, dbl)(5)); // 11 (5*2 then +1)दाएँ से बाएँ क्रम
क्रम महत्वपूर्ण है। compose(inc, dbl) पहले दोगुना करता है और फिर एक बढ़ाता है, जबकि compose(dbl, inc) पहले एक बढ़ाता है। संयोजन को भीतर से बाहर की ओर पढ़ें।
console.log(compose(dbl, inc)(5)); // 12 (5+1 then *2)जेनेरिक के साथ संयोजन का टाइप निर्धारण
जेनेरिक इनपुट और आउटपुट के प्रकारों को अलग होने देते हैं। g, A को B में बदलता है; f, B को C में बदलता है; और परिणाम A को C में बदलता है।
function compose<A, B, C>(f: (b: B) => C, g: (a: A) => B): (a: A) => C {
return a => f(g(a));
}रास्ते में प्रकार बदलना
जेनेरिक की श्रृंखला A -> B -> C होने के कारण, संयोजन किसी मान को कई रूपों में बदल सकता है, जैसे स्ट्रिंग से संख्या और फिर संख्या से स्ट्रिंग में।
const length = (s: string) => s.length;
const toStr = (n: number) => "len=" + n;
const describe = compose(toStr, length);
console.log(describe("hello")); // len=5प्रकारों की सीमा का मेल आवश्यक है
g का आउटपुट f के इनपुट से मेल खाना चाहिए। यदि दोनों में असहमति हो, तो कंपाइलर संयोजन को अस्वीकार कर देता है और जोड़ने की गलतियों को आरंभ में ही पकड़ लेता है।
// compose(length, toStr) would error:
// toStr returns string, length expects string -> ok here,
// but mismatched pairs are flagged by the compiler.तीन फ़ंक्शनों का संयोजन
आप संयोजन को नेस्ट कर सकते हैं या तीन-आर्ग्युमेंट वाला संस्करण लिख सकते हैं। इन सभी में दाएँ से बाएँ का नियम लागू होता है।
const compose3 = <A, B, C, D>(
f: (c: C) => D, g: (b: B) => C, h: (a: A) => B
) => (a: A): D => f(g(h(a)));
const inc = (n: number) => n + 1;
const dbl = (n: number) => n * 2;
const neg = (n: number) => -n;
console.log(compose3(neg, dbl, inc)(3)); // -8संयोजन से प्रवाह-श्रृंखलाएँ बनती हैं
छोटे, शुद्ध फ़ंक्शनों का संयोजन करके आप घोषणात्मक ढंग से जटिल रूपांतरण तैयार करते हैं। हर भाग का अलग-अलग परीक्षण किया जा सकता है।
const trim = (s: string) => s.trim();
const upper = (s: string) => s.toUpperCase();
const clean = compose(upper, trim);
console.log(clean(" hi ")); // HIशुद्ध फ़ंक्शन सबसे अच्छे ढंग से संयोजित क्यों होते हैं
संयोजन मानता है कि हर फ़ंक्शन केवल अपने इनपुट पर निर्भर करता है। शुद्ध फ़ंक्शन इसकी गारंटी देते हैं, इसलिए उनका संयोजन एक और पूर्वानुमेय शुद्ध फ़ंक्शन बनाता है।
compose बनाम पाइप
compose दाएँ से बाएँ चलता है और गणितीय संकेत-लेखन जैसा दिखता है। बहुत से लोग बाएँ से दाएँ पढ़ना पसंद करते हैं, और यही सुविधा pipe देता है, जिसके बारे में आगे बताया गया है।
भागों को छोटा रखें
संयोजन तब प्रभावी होता है जब हर फ़ंक्शन एक छोटा-सा काम करता है। छोटे, नामित और शुद्ध चरण संयोजित प्रवाह-श्रृंखला को स्वयं-व्याख्यात्मक बनाते हैं और उन्हें आसानी से पुनर्व्यवस्थित किया जा सकता है।
त्वरित जाँच
इस पाठ की त्वरित जाँच।
पुनरावलोकन
compose(f, g)(x) = f(g(x)) दाएँ से बाएँ चलता है। जेनेरिक टाइपिंग A -> B -> C की श्रृंखला बनाती है, इसलिए g का आउटपुट f के इनपुट से मेल खाना चाहिए। इससे कंपाइलर छोटे शुद्ध फ़ंक्शनों की प्रवाह-श्रृंखला की जाँच कर सकता है।
एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 101
- पाठ
- 352
अक्सर पूछे जाने वाले प्रश्न
क्या “प्रकारों के साथ फ़ंक्शन संयोजन” पाठ निःशुल्क है?
हाँ—“प्रकारों के साथ फ़ंक्शन संयोजन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“प्रकारों के साथ फ़ंक्शन संयोजन” में मैं क्या सीखूँगा?
प्रकार सुरक्षा बनाए रखते हुए फ़ंक्शन संयोजित करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“प्रकारों के साथ फ़ंक्शन संयोजन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- शुद्ध फ़ंक्शन और अपरिवर्तनीयता
- करीइंग और आंशिक अनुप्रयोग
- प्रकारों के साथ फ़ंक्शन संयोजन
- टाइप किए गए pipe और flow यूटिलिटी