आवश्यक चरण लागू करना
सभी आवश्यक फ़ील्ड सेट होने तक build() को रोकें।
आवश्यक चरण लागू करना, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
समय से पहले build() रोकना
अब हम संचित स्थिति का उपयोग करके आवश्यक गुण निर्धारित होने तक build() का आह्वान रोकते हैं। अधूरे निर्माण को चलने के समय की जाँच नहीं, बल्कि प्रकार प्रणाली रोकती है।
अंतिम संरचना निर्धारित करें
पहले पूरी वस्तु और अनिवार्य कुंजियों की घोषणा कीजिए। निर्माता केवल तभी build() की अनुमति देगा, जब स्थिति में वे सभी कुंजियाँ मौजूद हों।
interface Config {
url: string; // required
method: string; // required
timeout?: number; // optional
}
type Required = { url: string; method: string };सशर्त build हस्ताक्षर
हम build को तभी उपलब्ध कराते हैं, जब संचित स्थिति S आवश्यक कुंजियों का विस्तार हो। एक सशर्त प्रकार वास्तविक विधि या अनुपयोगी विधि लौटाता है।
class Builder<S> {
build(this: Builder<Required>): Config {
return this.d as Config;
}
private d: Record<string, unknown> = {};
}वर्तमान-वस्तु पैरामीटर का उपयोग
this: Builder<Required> पैरामीटर यह सीमित करता है कि कौन-से निर्माता उदाहरण build का आह्वान कर सकते हैं। यदि S Required की शर्त पूरी नहीं करता, तो आह्वान में प्रकार त्रुटि होती है।
// Only a Builder whose S includes url and method
// can legally invoke build().मान-निर्धारकों को स्थिति से जोड़ना
प्रत्येक मान-निर्धारक पहले की तरह S को विस्तृत करता है। दोनों आवश्यक मान-निर्धारक चलने के बाद S अंततः Required का विस्तार करता है और build का आह्वान किया जा सकता है।
class Builder<S> {
private d: Record<string, unknown> = {};
url(u: string): Builder<S & { url: string }> { this.d.url = u; return this as any; }
method(m: string): Builder<S & { method: string }> { this.d.method = m; return this as any; }
build(this: Builder<{ url: string; method: string }>): Config { return this.d as Config; }
}सफल मार्ग संकलित होता है
जब दोनों आवश्यक चरण मौजूद होते हैं, तब श्रृंखला की प्रकार-जाँच सफल होती है और वह चलती है। संकलक संतुष्ट होता है कि S में प्रत्येक आवश्यक कुंजी शामिल है।
const cfg = new Builder<{}>().url("/x").method("GET").build();
console.log(cfg.url, cfg.method);विफल मार्ग रुक जाता है
किसी आवश्यक चरण को छोड़ देने पर build() की प्रकार-जाँच सफल नहीं होती, क्योंकि निर्माता का S Required का विस्तार नहीं करता। गलती संकलन के समय पकड़ ली जाती है।
// const bad = new Builder<{}>().url("/x").build();
// Error: 'build' can only be called when method is set too.यह तरीका चलने के समय की सुरक्षा-जाँच से बेहतर क्यों है
चलने के समय की if (!this.url) throw जाँच केवल कोड चलने पर विफल होती है। वर्तमान-वस्तु पैरामीटर वाला तरीका प्रकार-जाँच के दौरान विफल होता है, इसलिए अधूरे निर्माण कभी जारी नहीं किए जाते।
वैकल्पिक गुण वैकल्पिक ही रहते हैं
timeout जैसे वैकल्पिक चरण कभी भी Required का हिस्सा नहीं होते, इसलिए वे build() को रोकते नहीं हैं। आप उन्हें अपनी इच्छा से शामिल या छोड़ सकते हैं।
const ok = new Builder<{}>().method("PUT").url("/y").build();
console.log("order of required steps does not matter");कई आवश्यकताओं तक विस्तार
Required संरचना और वर्तमान-वस्तु पैरामीटर में अधिक अनिवार्य कुंजियाँ जोड़िए, और संकलक उन सभी को लागू करेगा। यह प्रतिरूप आवश्यक चरणों की किसी भी संख्या तक विस्तारित हो सकता है।
सीमाएँ
यह गारंटी प्रत्येक मान-निर्धारक के माध्यम से S को सही ढंग से आगे पहुँचाने और वर्तमान-वस्तु पैरामीटर की प्रकार-जाँच का उपयोग करने पर निर्भर करती है। रूपांतरणों को मान-निर्धारकों तक सीमित रखना चाहिए, ताकि आह्वानकर्ता पूरी तरह प्रकार-सुरक्षित रहें।
त्वरित जाँच
इस पाठ की त्वरित जाँच।
पुनरावलोकन
आवश्यक चरण लागू करने के लिए, build में this: Builder<Required> पैरामीटर का प्रकार दीजिए। विधि की प्रकार-जाँच तभी सफल होती है, जब संचित स्थिति S में प्रत्येक आवश्यक कुंजी शामिल हो। इस तरह अधूरा निर्माण संकलन त्रुटि में बदल जाता है।
एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 101
- पाठ
- 352
अक्सर पूछे जाने वाले प्रश्न
क्या “आवश्यक चरण लागू करना” पाठ निःशुल्क है?
हाँ—“आवश्यक चरण लागू करना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“आवश्यक चरण लागू करना” में मैं क्या सीखूँगा?
सभी आवश्यक फ़ील्ड सेट होने तक build() को रोकें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“आवश्यक चरण लागू करना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- बिल्डर पैटर्न की मूल बातें
- प्रकारों के साथ फ्लुएंट इंटरफ़ेस
- आवश्यक चरण लागू करना
- अपरिवर्तनीय बिल्डर