TypeScript Academy · पाठ

स्ट्रिंग-पैटर्न टाइपिंग (रूट पैरामीटर, इवेंट नाम)

टेम्पलेट लिटरल प्रकारों से स्ट्रिंग सीमित करें: रूट पैरामीटर पैटर्न, इवेंट नाम नेमस्पेस और सुरक्षित बिल्डर।

पाठ 3, कुल 3 में से8 चरण

स्ट्रिंग-पैटर्न टाइपिंग (रूट पैरामीटर, इवेंट नाम), CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 3 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।

परिचय

लक्ष्य: प्रकारों में स्ट्रिंग प्रारूपों का मॉडल बनाएँ। टेम्पलेट लिटरल प्रकारों से आप "/users/:id" या "user:created" जैसे पैटर्न लागू कर सकते हैं और बेहतरीन DX बनाए रख सकते हैं।

  • उपसर्ग या प्रत्यय के आधार पर सीमित करें
  • infer से अंश निकालें
  • सुरक्षित सहायक बनाएँ

रूट पैरामीटर

एक सरल रूट टेम्पलेट बनाएँ और पैरामीटर नाम का अनुमान लगाएँ; नियम का पालन न करने वाले मामलों का प्रकार असंभव रखें।

type Route = `/${string}`

type RouteWithParam = `/${string}/:${string}`

type ParamOf<R extends string> = R extends `${string}/:${infer P}` ? P : never

// examples
type A = ParamOf<"/users/:id">      // "id"
type B = ParamOf<"/posts/:slug">    // "slug"

सुरक्षित रूट सहायक

सुरक्षित बिल्डर: सहायक फ़ंक्शन केवल उन टेम्पलेटों को स्वीकार करता है जो "/" से शुरू होते हैं; अन्य टेम्पलेट संकलन के समय अस्वीकार कर दिए जाते हैं।

type Path<R extends string> = R extends `/${string}` ? R : never

function route<R extends Path<R>>(r: R) { return r }

const ok = route("/users/:id")    // ok
// const bad = route("users")      // error: must start with "/"

इवेंट नेमस्पेस

उपसर्गों को सीमित करें, जैसे उपयोगकर्ता और ऑर्डर, और प्रकारों से गलत फ़ील्ड नामों को रोकें।

type EventName = `user:${string}` | `order:${string}`

function on<E extends EventName>(name: E, cb: (data: unknown) => void) {
  // ... register listener
}

on("user:created", d => {})     // ok
// on("payment:done", d => {})  // error: not an EventName

इवेंट विभाजित करना

निकालें: अनुमान की सहायता से दोनों भाग निकालें और उन्हें प्रकारित फ़ील्डों में बदलें; अमान्य प्रारूप कभी उत्पन्न नहीं होंगे।

type SplitEvent<E extends string> = E extends `${infer Scope}:${infer Action}` ? { scope: Scope; action: Action } : never

type S = SplitEvent<"user:created">   // { scope: "user"; action: "created" }

type Bad = SplitEvent<"oops">          // never

सुझाव

सुझाव:

सीमाएँ न्यूनतम रखें; अत्यधिक कठोर टेम्पलेट पुनर्गठन के लिए मजबूर करते हैं।

बिल्डर फ़ंक्शनों से नियमों को एक ही स्थान पर संयोजित करें।

मूल स्ट्रिंग को map करके अज्ञात डेटा में बदलना और रनटाइम पर उसका सत्यापन करना न भूलें।

नेमस्पेस की जाँच

त्वरित जाँच: कौन-सा पैटर्न इवेंट नामों को दो नेमस्पेस तक सीमित करता है?

पुनरावलोकन

पुनरावलोकन: टेम्पलेट लिटरल प्रकारों से टेम्पलेट वाली स्ट्रिंगों को सीमित करें; infer से अंश हटाएँ; सुरक्षित बिल्डर फ़ंक्शन बनाएँ।

शुरुआत निःशुल्क

एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
101
पाठ
352

अक्सर पूछे जाने वाले प्रश्न

क्या “स्ट्रिंग-पैटर्न टाइपिंग (रूट पैरामीटर, इवेंट नाम)” पाठ निःशुल्क है?

हाँ—“स्ट्रिंग-पैटर्न टाइपिंग (रूट पैरामीटर, इवेंट नाम)” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।

“स्ट्रिंग-पैटर्न टाइपिंग (रूट पैरामीटर, इवेंट नाम)” में मैं क्या सीखूँगा?

टेम्पलेट लिटरल प्रकारों से स्ट्रिंग सीमित करें: रूट पैरामीटर पैटर्न, इवेंट नाम नेमस्पेस और सुरक्षित बिल्डर। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 3वाँ पाठ है।

“स्ट्रिंग-पैटर्न टाइपिंग (रूट पैरामीटर, इवेंट नाम)” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. +/-readonly और +/-? वाले मैप्ड प्रकार
  2. कुंजी रीमैपिंग और टेम्पलेट लिटरल प्रकार
  3. स्ट्रिंग-पैटर्न टाइपिंग (रूट पैरामीटर, इवेंट नाम)
← TypeScript Academy पर वापस जाएँ