ताज़गी और अतिरिक्त गुणों की जाँच
जानें कि कुछ संदर्भों में अतिरिक्त गुण त्रुटियाँ क्यों उत्पन्न करते हैं
ताज़गी और अतिरिक्त गुणों की जाँच, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
नवीनता क्या है?
नवीनता TypeScript की वह अवधारणा है जिसमें ऑब्जेक्ट लिटरल को बनाए जाने के स्थान पर "नवीन" माना जाता है। नवीन ऑब्जेक्ट की अतिरिक्त गुणों के लिए कड़ी जाँच होती है, जो विस्तृत ऑब्जेक्ट पर नहीं होती।
interface Point { x: number; y: number; }
const p: Point = { x: 1, y: 2, z: 3 }; // Error: 'z' not in Pointअतिरिक्त गुण-जाँच का प्रयोग
जब आप किसी ऑब्जेक्ट लिटरल को सीधे प्रकार वाले चर में असाइन करते हैं या उसे फ़ंक्शन तर्क के रूप में पास करते हैं, तो TypeScript ऐसे अतिरिक्त गुणों की रिपोर्ट करता है जो लक्ष्य प्रकार में मौजूद नहीं हैं।
function setPoint(p: { x: number; y: number }) {}
setPoint({ x: 1, y: 2, z: 3 }); // Error: 'z' excess propertyअतिरिक्त गुण-जाँच क्यों मौजूद है
यह कॉन्फ़िगरेशन ऑब्जेक्ट में टाइपो और अनपेक्षित गुणों को पकड़ती है, जो JavaScript में बग का एक सामान्य स्रोत हैं।
interface Options { timeout: number; retry?: boolean; }
const opts: Options = { timeout: 3000, retrey: true }; // Error — typo!नवीनता कैसे समाप्त होती है
एक बार ऑब्जेक्ट लिटरल को किसी मध्यवर्ती चर में असाइन कर देने पर वह "नवीन" नहीं रहता और विस्तृत प्रकार पर अतिरिक्त गुण-जाँच लागू नहीं होती।
const opts = { timeout: 3000, retry: true, extra: "surprise" };
const o: Options = opts; // No error — freshness lost on assignmentप्रकार-अभिकथन नवीनता को दरकिनार करते हैं
as प्रकार-अभिकथनों का उपयोग भी अतिरिक्त गुण-जाँच को दरकिनार कर देता है, जिससे बग छिप सकते हैं।
const o = { timeout: 3000, typo: true } as Options; // No errorप्रतिच्छेदी प्रकारों के साथ अतिरिक्त गुण-जाँच
प्रतिच्छेदी प्रकार कभी-कभी अतिरिक्त गुण-जाँच को ढीला कर सकते हैं, क्योंकि अतिरिक्त गुण प्रतिच्छेद के किसी एक सदस्य से संबंधित हो सकते हैं।
type A = { x: number };
type B = { y: number };
const ab: A & B = { x: 1, y: 2 }; // OKकेवल-पठनीय और अतिरिक्त गुण
अतिरिक्त गुण-जाँच केवल-पठनीय ऑब्जेक्ट प्रकारों पर भी लागू होती है — यह नियम संरचनात्मक आकार से संबंधित है, बदलाव की क्षमता से नहीं।
interface Cfg { readonly host: string; }
const c: Cfg = { host: "localhost", port: 3000 }; // Errorइंडेक्स सिग्नेचर और अतिरिक्त गुण
किसी प्रकार में इंडेक्स सिग्नेचर जोड़ने से स्ट्रिंग-कुंजी वाले किसी भी अतिरिक्त गुण की अनुमति मिल जाती है और उस प्रकार के लिए अतिरिक्त गुण-जाँच प्रभावी रूप से बंद हो जाती है।
interface Flexible { name: string; [key: string]: unknown; }
const f: Flexible = { name: "ts", extra: true }; // OKवैकल्पिक गुण और नवीनता
वैकल्पिक गुण अतिरिक्त गुण-जाँच को ढीला नहीं करते। जो गुण बिल्कुल सूचीबद्ध नहीं है — वैकल्पिक रूप में भी नहीं — उसे फिर भी अतिरिक्त गुण के रूप में रिपोर्ट किया जाता है।
interface Shape { color?: string; }
const s: Shape = { color: "red", size: 10 }; // Error: 'size' excessव्यावहारिक तरीके
अतिरिक्त कॉन्फ़िगरेशन गुणों को बिना त्रुटि के प्रकार वाले इंटरफ़ेस से आगे भेजने के लिए किसी मध्यवर्ती चर या इंटरफ़ेस में इंडेक्स सिग्नेचर का उपयोग करें।
// Option 1: intermediate variable (freshness lost)
const cfg = { timeout: 3000, debugMode: true };
const o: Options = cfg;
// Option 2: index signature in interfaceपुनरावलोकन: नवीनता
नवीनता नवीन ऑब्जेक्ट लिटरल पर लागू होती है और असाइनमेंट के स्थान पर अतिरिक्त गुण-जाँच सक्षम करती है। अतिरिक्त गुणों की अनुमति देने के लिए किसी मध्यवर्ती चर में असाइन करें या इंडेक्स सिग्नेचर का उपयोग करें।
त्वरित जाँच
अतिरिक्त गुण-जाँच कब लागू नहीं होती?
आपने क्या सीखा
नवीनता और अतिरिक्त गुण-जाँच ऑब्जेक्ट लिटरल में टाइपो और अनपेक्षित गुणों से आपकी रक्षा करते हैं। आश्चर्यजनक प्रकार-त्रुटियों या छिपे हुए बग से बचने के लिए समझें कि नवीनता कब समाप्त होती है।
एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 101
- पाठ
- 352
अक्सर पूछे जाने वाले प्रश्न
क्या “ताज़गी और अतिरिक्त गुणों की जाँच” पाठ निःशुल्क है?
हाँ—“ताज़गी और अतिरिक्त गुणों की जाँच” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“ताज़गी और अतिरिक्त गुणों की जाँच” में मैं क्या सीखूँगा?
जानें कि कुछ संदर्भों में अतिरिक्त गुण त्रुटियाँ क्यों उत्पन्न करते हैं आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“ताज़गी और अतिरिक्त गुणों की जाँच” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- प्रकारों को विस्तृत और सीमित करने की प्रक्रिया
- संदर्भ-आधारित टाइपिंग: संदर्भ से अनुमान
- ताज़गी और अतिरिक्त गुणों की जाँच
- const अभिकथन और as const