पूर्ण switch और never जाँच
switch से पूर्ण यूनियन लिखें और never से छूटे हुए मामले पकड़ें; एक सुरक्षित assertNever सहायक बनाएँ।
पूर्ण switch और never जाँच, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 3 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
परिचय
लक्ष्य: यूनियन पर सभी मामलों को शामिल करने वाले switch बनाना और कंपाइल के समय छूटे हुए मामलों को पकड़ने के लिए never का उपयोग करना।
सभी मामलों वाला switch
भेदित यूनियन में एक सामान्य kind फ़ील्ड होती है। उस फ़ील्ड पर लगाया गया switch प्रत्येक मामले का प्रकार सुरक्षित ढंग से सीमित करता है।
type Circle = { kind: "circle"; radius: number }
type Square = { kind: "square"; size: number }
type Shape = Circle | Square
function area(s: Shape): number {
switch (s.kind) {
case "circle":
return Math.PI * s.radius * s.radius
case "square":
return s.size * s.size
}
}जब यूनियन बढ़ते हैं
जब कोई नया सदस्य (जैसे triangle) जोड़ा जाता है, तो never की सहायता से हम उसे पकड़ लेते हैं, ताकि छूटा हुआ मामला चुपचाप बग न पैदा करे।
type Triangle = { kind: "triangle"; base: number; height: number }
// If we extend Shape but forget to add case, we want a compile-time error
// type Shape = Circle | Square | TriangleassertNever
assertNever का पैरामीटर never प्रकार का होना चाहिए, ताकि कोई नया variant default में जाने पर कंपाइल त्रुटि दे।
function assertNever(x: never): never {
throw new Error(`Unhandled case: ${String(x)}`)
}
function areaSafe(s: Shape): number {
switch (s.kind) {
case "circle":
return Math.PI * s.radius * s.radius
case "square":
return s.size * s.size
default:
return assertNever(s) // if Shape grows, compiler errors here
}
}लिटरल यूनियन
यही पैटर्न स्ट्रिंग लिटरल यूनियन पर भी लागू होता है: हर संभावित मान को शामिल करें और default पर assertNever को कॉल करें।
type Status = "idle" | "loading" | "success" | "error"
function toIcon(s: Status) {
switch (s) {
case "idle": return "⏸"
case "loading": return "⏳"
case "success": return "✅"
case "error": return "⚠️"
default: return assertNever(s)
}
}
// Alternative: const check
const _check: never = ((): Status => "idle")() as never // force compile-time check with careसुझाव
सुझाव: noFallthroughCasesInSwitch चालू करें; भेदित यूनियन को प्राथमिकता दें; default का उपयोग केवल assertNever के लिए करें।
// Tips
// - Enable noFallthroughCasesInSwitch in tsconfig for safer switches
// - Prefer discriminated unions over boolean flags
// - Keep default branch only to call assertNever; avoid swallowing casesassertNever जाँच
त्वरित जाँच: सभी मामलों वाले switch में assertNever का उद्देश्य क्या है?
पुनरावलोकन
पुनरावलोकन: भेदित यूनियन + सभी मामलों वाला switch = अधिक सुरक्षित कोड। never और assertNever कंपाइलेशन में छूटे हुए मामलों को पकड़ते हैं।
एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 101
- पाठ
- 352
अक्सर पूछे जाने वाले प्रश्न
क्या “पूर्ण switch और never जाँच” पाठ निःशुल्क है?
हाँ—“पूर्ण switch और never जाँच” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
“पूर्ण switch और never जाँच” में मैं क्या सीखूँगा?
switch से पूर्ण यूनियन लिखें और never से छूटे हुए मामले पकड़ें; एक सुरक्षित assertNever सहायक बनाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 1वाँ पाठ है।
“पूर्ण switch और never जाँच” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- पूर्ण switch और never जाँच
- प्रेडिकेट फ़ंक्शन और satisfies ऑपरेटर
- फ़ंक्शन सीमाओं के पार यूनियन को परिष्कृत करना