प्रकारों को विस्तृत और सीमित करने की प्रक्रिया
जानें कि TypeScript प्रकारों को कैसे विस्तृत करता है और इसे कब रोकना चाहिए
प्रकारों को विस्तृत और सीमित करने की प्रक्रिया, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
प्रकार का विस्तार क्या है?
प्रकार का विस्तार तब होता है जब TypeScript आपके लिखे हुए प्रकार से अधिक व्यापक प्रकार का अनुमान लगाता है। let x = "hello" को असाइन करने पर प्रकार string तक विस्तृत हो जाता है, न कि शाब्दिक प्रकार "hello" तक।
let x = "hello"; // inferred: string, not "hello"
let y = 42; // inferred: number, not 42let बनाम const के साथ विस्तार
const से घोषित चर अपना शाब्दिक प्रकार बनाए रखते हैं, क्योंकि उन्हें फिर से असाइन नहीं किया जा सकता। let आधार प्रकार तक विस्तृत हो जाता है।
const a = "world"; // type: "world"
let b = "world"; // type: stringप्रकार-टिप्पणियों से विस्तार रोकना
let चर का प्रकार स्पष्ट रूप से लिखने पर विस्तार रुक जाता है और शाब्दिक प्रकार स्थिर हो जाता है।
let direction: "left" | "right" = "left";
// direction = "up"; // Error: not assignabletypeof से प्रकार को सीमित करना
TypeScript typeof जाँचों के भीतर यूनियन प्रकार को सीमित करता है, जिससे उस शाखा में आपको सटीक प्रकार मिलता है।
function format(val: string | number) {
if (typeof val === "string") {
return val.toUpperCase(); // val: string here
}
return val.toFixed(2); // val: number here
}समानता-जाँच से प्रकार को सीमित करना
शाब्दिक मानों के साथ समानता-जाँच भी शाखा के भीतर प्रकार को सीमित करती है।
type Direction = "left" | "right" | "up";
function handle(dir: Direction) {
if (dir === "left") {
console.log("Going left"); // dir: "left"
}
}नियंत्रण-प्रवाह विश्लेषण
TypeScript नियंत्रण-प्रवाह के माध्यम से असाइनमेंट पर नज़र रखता है और प्रत्येक शाखा के बाद प्रकार को सीमित करता है।
function process(x: string | null) {
if (x === null) return;
// x is string here — TypeScript knows null is ruled out
console.log(x.length);
}ऑब्जेक्ट लिटरल में विस्तार
जब तक आप as const का उपयोग न करें, ऑब्जेक्ट लिटरल के गुणों के मान भी विस्तृत हो जाते हैं।
const config = { mode: "dark" };
// config.mode: string (widened)
const config2 = { mode: "dark" } as const;
// config2.mode: "dark" (literal)नवीनता और प्रकार का विस्तार
जब आप किसी ऑब्जेक्ट लिटरल को सीधे प्रकार वाले चर में असाइन करते हैं, तो TypeScript अतिरिक्त गुणों की जाँच करता है — लेकिन किसी नामित चर में विस्तृत हो जाने के बाद यह जाँच लागू नहीं होती।
interface Options { timeout: number; }
const opts = { timeout: 3000, retry: true };
// No error — widened type, excess property check skipped
const o: Options = opts;in ऑपरेटर से प्रकार को सीमित करना
in ऑपरेटर यह जाँच करके ऑब्जेक्ट यूनियन प्रकारों को सीमित करता है कि कोई गुण मौजूद है या नहीं।
type Cat = { meow(): void };
type Dog = { bark(): void };
function speak(animal: Cat | Dog) {
if ("meow" in animal) animal.meow();
else animal.bark();
}अभिकथन फ़ंक्शन से प्रकार को सीमित करना
अभिकथन फ़ंक्शन कॉल के बाद प्रकार को सीमित करने के लिए asserts condition वापसी प्रकारों का उपयोग करते हैं।
function assertString(val: unknown): asserts val is string {
if (typeof val !== "string") throw new Error("Expected string");
}
const x: unknown = "hi";
assertString(x);
x.toUpperCase(); // OK — narrowed to stringपुनरावलोकन: विस्तार बनाम सीमितकरण
लचीलेपन के लिए प्रकार का विस्तार अनुमानित प्रकारों को व्यापक बनाता है, जबकि सीमितकरण किसी व्यापक प्रकार को सशर्त शाखा के भीतर सटीक प्रकार में बदलता है। दोनों को समझने से आप अधिक सुरक्षित TypeScript लिख सकते हैं।
त्वरित जाँच
कौन-सी घोषणा आधार प्रकार तक होने वाले विस्तार को रोकती है?
आपने क्या सीखा
अब आप प्रकार के विस्तार को समझते हैं, जिसमें TypeScript अनुमानित प्रकारों को व्यापक बनाता है, और सीमितकरण को भी, जिसमें सशर्त जाँचें सटीक प्रकार उत्पन्न करती हैं। विस्तार रोकने के लिए as const और यूनियन को सुरक्षित रूप से सीमित करने के लिए नियंत्रण-प्रवाह जाँचों का उपयोग करें।
एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 101
- पाठ
- 352
अक्सर पूछे जाने वाले प्रश्न
क्या “प्रकारों को विस्तृत और सीमित करने की प्रक्रिया” पाठ निःशुल्क है?
हाँ—“प्रकारों को विस्तृत और सीमित करने की प्रक्रिया” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“प्रकारों को विस्तृत और सीमित करने की प्रक्रिया” में मैं क्या सीखूँगा?
जानें कि TypeScript प्रकारों को कैसे विस्तृत करता है और इसे कब रोकना चाहिए आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“प्रकारों को विस्तृत और सीमित करने की प्रक्रिया” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- प्रकारों को विस्तृत और सीमित करने की प्रक्रिया
- संदर्भ-आधारित टाइपिंग: संदर्भ से अनुमान
- ताज़गी और अतिरिक्त गुणों की जाँच
- const अभिकथन और as const