ट्यूपल रेस्ट एलिमेंट, करी प्रकार
मनमानी आर्ग्युमेंट सूचियाँ कैप्चर करने के लिए ट्यूपल रेस्ट एलिमेंट का उपयोग करें और टाइप अनुमान के साथ छोटे करी सहायक बनाएँ।
ट्यूपल रेस्ट एलिमेंट, करी प्रकार, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 3 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
परिचय
लक्ष्य: वैरिएडिक ट्यूपल्स से आर्ग्यूमेंट सूचियों को निरूपित करें और एक छोटा लेकिन उपयोगी क्यूरी सहायक लिखें। इससे आपके एपीआई लचीले रहते हैं और प्रकार-सुरक्षा बनी रहती है।
वैरिएडिक मूल बातें
[...A, L] पैटर्न में पहले मुख्य आर्ग्यूमेंट्स (A ट्यूपल), फिर अंतिम आर्ग्यूमेंट (L) आता है। यही सहायक फ़ंक्शनों का आधार है।
type HeadTail<A extends any[], L> = [...A, L]
function callWithLast<A extends any[], L, R>(fn: (...args: [...A, L]) => R, last: L, ...head: A): R {
return fn(...head, last)
}
// Example
function join3(a: string, b: number, c: boolean) { return `${a}-${b}-${c}` }
const r = callWithLast(join3, true, "x", 42) // ok → stringक्यूरी सहायक
एक छोटा क्यूरीकरण: [...A, L] की सहायता से मुख्य और अंतिम, दोनों प्रकार सही रहते हैं।
function curryLast<A extends any[], L, R>(fn: (...args: [...A, L]) => R) {
return (last: L) => (...head: A) => fn(...head, last)
}
const curried = curryLast(join3)
const out = curried(true)("x", 42) // stringसामान्य curryFromFn
सामान्य समाधान: Parameters<F> से शेष भाग और अंतिम आर्ग्यूमेंट का अनुमान लगाएँ, जिससे पैरामीटरों की संख्या और उनके प्रकार सुरक्षित रहते हैं।
type Fn = (...args: any[]) => any
type Tail<T extends any[]> = T extends [...infer H, any] ? H : never
type Last<T extends any[]> = T extends [...any[], infer L] ? L : never
function curryFromFn<F extends Fn>(fn: F) {
type A = Tail<Parameters<F>>
type L = Last<Parameters<F>>
return (last: L) => (...head: A) => fn(...head, last)
}
const cur = curryFromFn(join3)
const o2 = cur(true)("x", 42) // still stringट्यूपल्स के साथ संयोजन
compose से A → B → C का प्रवाह बनाएँ: A ट्यूपल के आर्ग्यूमेंट सुरक्षित रहते हैं और आउटपुट प्रकार एक-दूसरे से जुड़ते जाते हैं।
function compose<A extends any[], B, C>(g: (b: B) => C, f: (...args: A) => B) {
return (...args: A): C => g(f(...args))
}
function len(a: string, b: number) { return `${a}${b}`.length }
function isEven(n: number) { return n % 2 === 0 }
const comp = compose(isEven, len)
const ok = comp("id", 99) // booleanसुझाव
सुझाव:
वैरिएडिक ट्यूपल्स के लिए TS 4.0+ आवश्यक है; लक्ष्य संस्करण को अद्यतन रखें।
संकलक को संकेत दें: कभी-कभी प्रकार पैरामीटर स्पष्ट रूप से लिखने से अनुमान बेहतर होता है।
अत्यधिक सामान्यीकरण एपीआई के डिज़ाइन में जटिलता जोड़ता है; सरल सहायक सबसे प्रभावी होते हैं।
क्यूरी सिग्नेचर की जाँच
त्वरित जाँच: कौन-सा सिग्नेचर क्यूरी सहायक के लिए किसी भी आर्ग्यूमेंट A और अंतिम आर्ग्यूमेंट L को निरूपित करता है?
पुनरावलोकन
पुनरावलोकन: [...A, L] से आर्ग्यूमेंट सूचियों का मॉडल बनाएँ; छोटे क्यूरीकरण और संयोजन सहायक लिखें; प्रकार अपने-आप सुरक्षित रहते हैं।
एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 101
- पाठ
- 352
अक्सर पूछे जाने वाले प्रश्न
क्या “ट्यूपल रेस्ट एलिमेंट, करी प्रकार” पाठ निःशुल्क है?
हाँ—“ट्यूपल रेस्ट एलिमेंट, करी प्रकार” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
“ट्यूपल रेस्ट एलिमेंट, करी प्रकार” में मैं क्या सीखूँगा?
मनमानी आर्ग्युमेंट सूचियाँ कैप्चर करने के लिए ट्यूपल रेस्ट एलिमेंट का उपयोग करें और टाइप अनुमान के साथ छोटे करी सहायक बनाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 1वाँ पाठ है।
“ट्यूपल रेस्ट एलिमेंट, करी प्रकार” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- ट्यूपल रेस्ट एलिमेंट, करी प्रकार
- फ़ंक्शन और आर्ग्युमेंट सुरक्षित रूप से संयोजित करें
- मज़बूत टाइप वाले बिल्डर