?. के साथ वैकल्पिक चेनिंग
ऐसे गहराई से नेस्टेड गुणों तक सुरक्षित रूप से पहुँचें जो null हो सकते हैं।
?. के साथ वैकल्पिक चेनिंग, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
वैकल्पिक श्रृंखलन संचालक
वैकल्पिक श्रृंखलन (?.) आपको ऐसे गुणधर्म तक सुरक्षित रूप से पहुँचने देता है जो null या undefined मान में हो भी सकता है और नहीं भी। यदि मान रिक्त-सदृश है, तो पूरी अभिव्यक्ति त्रुटि फेंकने के बजाय शॉर्ट-सर्किट होकर undefined बन जाती है।
type User = { profile?: { bio?: string } };
const u: User = {};
const bio = u.profile?.bio;
console.log(bio); // undefined, no crashरिक्त-सदृश मान पर शॉर्ट-सर्किट
जब ?. से पहले वाला संकार्य null या undefined हो, तो मूल्यांकन तुरंत रुक जाता है और undefined लौटता है। श्रृंखला का शेष भाग कभी निष्पादित नहीं होता।
const data: { value?: number } | null = null;
console.log(data?.value); // undefined, did not throwकई स्तरों की श्रृंखला बनाना
गहरे अभिगम के प्रत्येक अनिश्चित चरण पर ?. रखा जा सकता है। कोई भी रिक्त-सदृश कड़ी पूरी श्रृंखला को शॉर्ट-सर्किट कर देती है और आपको “undefined का गुणधर्म पढ़ा नहीं जा सकता” जैसी त्रुटियों से बचाती है।
type Company = { ceo?: { contact?: { email?: string } } };
const c: Company = { ceo: {} };
console.log(c.ceo?.contact?.email); // undefinedपरिणाम के प्रकार में undefined शामिल होता है
चूँकि श्रृंखला undefined दे सकती है, TypeScript परिणाम के प्रकार में undefined जोड़ देता है। यदि गुणधर्म का प्रकार string था, तो श्रृंखला का परिणाम string | undefined होता है।
type Settings = { theme?: { name: string } };
const s: Settings = { theme: { name: 'dark' } };
const name = s.theme?.name; // type: string | undefined
console.log(name);undefined परिणाम को संभालना
चूँकि परिणाम undefined हो सकता है, इसलिए सामान्यतः आप उसकी जाँच करते हैं या कोई वैकल्पिक मान देते हैं। प्रकार-प्रणाली आपको अनुपस्थित मामले को संभालने की याद दिलाती है।
type Settings = { theme?: { name: string } };
const s: Settings = {};
const name = s.theme?.name;
if (name === undefined) console.log('using default');
else console.log(name);&& श्रृंखलाओं से तुलना
?. से पहले डेवलपर लंबी && श्रृंखलाएँ लिखते थे: a && a.b && a.b.c। वैकल्पिक श्रृंखलन उसी उद्देश्य को कहीं अधिक संक्षिप्त रूप में व्यक्त करता है और ऊपर से नीचे तक पढ़ने में आसान होता है।
type A = { b?: { c?: number } };
const a: A = { b: { c: 5 } };
const oldWay = a && a.b && a.b.c;
const newWay = a?.b?.c;
console.log(oldWay, newWay);?. && से बेहतर क्यों है
&& वाला तरीका किसी भी असत्य-सदृश मान (0, '', false) को रुकने का बिंदु मानता है, जो बग पैदा कर सकता है। वैकल्पिक श्रृंखलन केवल null या undefined पर रुकता है, और सामान्यतः यही अपेक्षित होता है।
type Box = { count?: number };
const b: Box = { count: 0 };
console.log(b && b.count); // 0... but && stops on falsy in longer chains
console.log(b?.count); // 0, cleanlyवस्तुओं की सारणियों पर वैकल्पिक श्रृंखलन
वैकल्पिक श्रृंखलन किसी भी गुणधर्म-अभिगम के साथ काम करता है। इसे तत्व-अभिगम के साथ मिलाने पर वस्तुओं की नेस्टेड सारणियों के भीतर सुरक्षित रूप से पहुँचा जा सकता है।
type Team = { members?: Array<{ name: string }> };
const t: Team = { members: [{ name: 'Ada' }] };
console.log(t.members?.[0]?.name);शॉर्ट-सर्किट पूरी अभिव्यक्ति को रोक देता है
एक बार श्रृंखला शॉर्ट-सर्किट हो जाए, तो उसके बाद लिखे गए गुणधर्म-अभिगम भी (यदि उनमें ?. न हो) छोड़ दिए जाते हैं। पूरी अभिव्यक्ति उसी क्षण undefined में मूल्यांकित हो जाती है।
type Deep = { a?: { b: { c: number } } };
const d: Deep = {};
// a is undefined, so b.c is never evaluated
console.log(d.a?.b.c); // undefinedफ़ंक्शन के परिणामों के साथ वैकल्पिक श्रृंखलन
आप किसी फ़ंक्शन-कॉल के परिणाम पर भी श्रृंखला बना सकते हैं। यदि फ़ंक्शन कोई रिक्त-सदृश मान लौटाता है, तो उसके बाद का अभिगम सुरक्षित रूप से शॉर्ट-सर्किट हो जाता है।
function findUser(): { name: string } | null {
return null;
}
console.log(findUser()?.name); // undefinedएक व्यावहारिक कॉन्फ़िगरेशन उदाहरण
आंशिक कॉन्फ़िगरेशन या एपीआई प्रतिक्रियाओं को पढ़ते समय वैकल्पिक श्रृंखलन बहुत उपयोगी होता है, क्योंकि उनमें अंतर्निहित फ़ील्ड अनुपस्थित हो सकते हैं। इससे अभिगम पढ़ने में सरल रहता है और क्रैश से बचता है।
type Response = { user?: { address?: { city?: string } } };
const res: Response = { user: { address: {} } };
console.log(res.user?.address?.city ?? 'unknown city');त्वरित जाँच
वैकल्पिक श्रृंखलन की अपनी समझ जाँचिए।
पुनरावलोकन: वैकल्पिक श्रृंखलन
आपने सीखा कि ?.:
- संभावित रूप से
null/undefinedमानों के गुणधर्मों तक सुरक्षित पहुँच देता है। - रिक्त-सदृश कड़ी मिलने पर पूरी अभिव्यक्ति को
undefinedमें शॉर्ट-सर्किट कर देता है। - परिणाम के प्रकार में
undefinedजोड़ देता है। &&श्रृंखलाओं से बेहतर है, क्योंकि यह सभी असत्य-सदृश मानों पर नहीं, केवल रिक्त-सदृश मानों पर रुकता है।
अगला विषय है रिक्त-सदृश मानों का संयोजन संचालक।
type Cfg = { db?: { host?: string } };
const c: Cfg = {};
console.log(c.db?.host);एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 101
- पाठ
- 352
अक्सर पूछे जाने वाले प्रश्न
क्या “?. के साथ वैकल्पिक चेनिंग” पाठ निःशुल्क है?
हाँ—“?. के साथ वैकल्पिक चेनिंग” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“?. के साथ वैकल्पिक चेनिंग” में मैं क्या सीखूँगा?
ऐसे गहराई से नेस्टेड गुणों तक सुरक्षित रूप से पहुँचें जो null हो सकते हैं। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“?. के साथ वैकल्पिक चेनिंग” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- ?. के साथ वैकल्पिक चेनिंग
- ?? के साथ नलिश कोलेसिंग
- ?. और ?? को मिलाना
- वैकल्पिक कॉल और एलिमेंट एक्सेस