बूलियन शाब्दिक और शाब्दिक अनुमान
समझें कि TypeScript शाब्दिक अनुमान को कैसे विस्तृत या संकीर्ण करता है।
बूलियन शाब्दिक और शाब्दिक अनुमान, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
बूलियन लिटरल प्रकार
boolean प्रकार वास्तव में true | false यूनियन है। इनमें से प्रत्येक बूलियन लिटरल प्रकार है: ऐसा प्रकार जो केवल एक विशिष्ट बूलियन मान की अनुमति देता है।
let yes: true = true;
let no: false = false;
console.log(yes, no);
// yes = false; // Error: false not assignable to trueयूनियन में बूलियन लिटरल
बूलियन लिटरल तब विशेष रूप से उपयोगी होते हैं जब उन्हें अन्य लिटरल के साथ मिलाकर विभेदित परिणामों का मॉडल बनाया जाता है, जैसे पेलोड के आकार के साथ सफलता ध्वज को मिलाना।
type Result =
| { ok: true; value: number }
| { ok: false; error: string };
const r: Result = { ok: true, value: 42 };
console.log(r);प्रकार का व्यापक होना
जब आप किसी चर को प्रारंभ करते हैं, तो TypeScript तय करता है कि किस प्रकार का अनुमान लगाया जाए। कभी-कभी यह निश्चित लिटरल को बनाए रखता है और कभी-कभी इसे सामान्य प्रकार तक व्यापक कर देता है। अनुमानित प्रकारों को विश्वसनीय रूप से समझने के लिए यह जानना महत्वपूर्ण है।
const exact = 'hello'; // type: 'hello' (literal)
let broad = 'hello'; // type: string (widened)
console.log(exact, broad);let सामान्य प्रकार तक व्यापक होता है
क्योंकि let चर को फिर से मान दिया जा सकता है, TypeScript भविष्य के मान-निर्धारण की अनुमति देने के लिए सामान्य प्रकार का अनुमान लगाता है। let से बनाई गई स्ट्रिंग string से शुरू होती है, लिटरल से नहीं।
let mood = 'happy'; // inferred as string
mood = 'sad'; // allowed
mood = 'tired'; // allowed
console.log(mood);const लिटरल को बनाए रखता है
const को फिर से मान नहीं दिया जा सकता, इसलिए TypeScript सबसे विशिष्ट प्रकार — लिटरल — का अनुमान लगाता है। इसी कारण const greeting = 'hi' का प्रकार 'hi' होता है, string नहीं।
const greeting = 'hi'; // type: 'hi'
type Greeting = typeof greeting; // 'hi'
const other: Greeting = 'hi';
console.log(other);संख्याओं और बूलियन के साथ व्यापक होना
यही नियम संख्याओं और बूलियन पर भी लागू होता है। const 42 या true को लिटरल के रूप में बनाए रखता है, जबकि let उन्हें number या boolean तक व्यापक कर देता है।
const n = 42; // type: 42
const b = true; // type: true
let m = 42; // type: number
let c = true; // type: boolean
console.log(n, b, m, c);प्रकार का व्यापक होना क्यों मौजूद है
प्रकार का व्यापक होना रोज़मर्रा के कोड को सुविधाजनक बनाए रखता है। यदि हर let count = 0 का प्रकार लिटरल 0 होता, तो आप उसमें वृद्धि नहीं कर पाते। व्यापक प्रकार फिर से मान दिए जा सकने वाले चरों को स्वाभाविक रूप से काम करने देता है।
let count = 0; // widened to number
count = count + 1;
count = 10;
console.log('Count:', count);एनोटेशन से लिटरल लागू करना
कभी-कभी आप चाहते हैं कि let लिटरल ही बना रहे। स्पष्ट लिटरल प्रकार का एनोटेशन जोड़िए। TypeScript प्रकार को संकीर्ण बनाए रखेगा और फिर भी आपको उसी यूनियन के भीतर नया मान देने देगा।
let status: 'on' | 'off' = 'on';
status = 'off'; // allowed
console.log(status);
// status = 'paused'; // Errorऑब्जेक्ट गुणों में प्रकार का व्यापक होना
ऑब्जेक्ट लिटरल के गुण भी डिफ़ॉल्ट रूप से व्यापक हो जाते हैं। const ऑब्जेक्ट में भी परिवर्तनशील गुणों को सामान्य प्रकार मिलता है, क्योंकि उस गुण को स्वयं नया मान दिया जा सकता है।
const config = { mode: 'dark' };
// config.mode has type string, not 'dark'
config.mode = 'light';
console.log(config.mode);फ़ंक्शन के साथ लिटरल का अनुमान
फ़ंक्शन के रिटर्न मानों का भी अनुमान लगाया जाता है। const लिटरल मान लौटाने वाला फ़ंक्शन भी अपने रिटर्न प्रकार को सामान्य प्रकार तक व्यापक कर देता है, जब तक कि आप उसका एनोटेशन न करें या हस्ताक्षर में लिटरल प्रकारों का उपयोग न करें।
function getMode(): 'dark' | 'light' {
return 'dark';
}
const m = getMode(); // type: 'dark' | 'light'
console.log(m);Literal और सामान्य में चुनाव
एक सामान्य नियम के तौर पर: जब आपको सटीक मानों की आवश्यकता हो, जैसे config कुंजियों या विभेदकों के लिए, तब const या स्पष्ट literal annotations का उपयोग करें। सामान्य बदलाव योग्य variables के लिए widening होने दें। यह जानना कि आपको कौन-सा प्रकार मिलेगा, चौंकाने वाली असाइन करने-योग्यता संबंधी त्रुटियों से बचाता है।
const KEY = 'apiUrl'; // literal 'apiUrl'
let retries = 3; // number
let level: 'low' | 'high' = 'low'; // pinned literal
console.log(KEY, retries, level);त्वरित जाँच
widening और literal inference की अपनी समझ जाँचें।
पुनरावलोकन: Literal Inference
मुख्य बातें:
trueऔरfalseliteral types हैं;booleanका अर्थtrue | falseहै।- let सामान्य type (
string,number,boolean) में widen होता है। - const सटीक literal type बनाए रखता है।
- किसी
letको संकीर्ण union से बाँधने के लिए उसे literal type के साथ annotate करें।
अब हम as const के ज़रिए immutability को स्पष्ट करेंगे।
const literal = 'fixed'; // 'fixed'
let widened = 'fixed'; // string
let pinned: 'a' | 'b' = 'a';
console.log(literal, widened, pinned);एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 101
- पाठ
- 352
अक्सर पूछे जाने वाले प्रश्न
क्या “बूलियन शाब्दिक और शाब्दिक अनुमान” पाठ निःशुल्क है?
हाँ—“बूलियन शाब्दिक और शाब्दिक अनुमान” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“बूलियन शाब्दिक और शाब्दिक अनुमान” में मैं क्या सीखूँगा?
समझें कि TypeScript शाब्दिक अनुमान को कैसे विस्तृत या संकीर्ण करता है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“बूलियन शाब्दिक और शाब्दिक अनुमान” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- स्ट्रिंग और संख्यात्मक शाब्दिक प्रकार
- बूलियन शाब्दिक और शाब्दिक अनुमान
- as const के साथ const अभिकथन
- शाब्दिक प्रकारों को यूनियन में मिलाना