टाइपस्क्रिप्ट में, जब हम किसी ऑब्जेक्ट प्रकार को परिभाषित करना चाहते हैं, तो 'ऑब्जेक्ट', '{}', और 'ऑब्जेक्ट' जैसे कई संक्षिप्त विकल्प होते हैं। उनके बीच क्या अंतर हैं?
ऑब्जेक्ट (अपरकेस्ड) सभी JavaScipt ऑब्जेक्ट्स के लिए सामान्य गुणों का वर्णन करता है। इसे lib.es5.d.ts फ़ाइल में परिभाषित किया गया है जो टाइपस्क्रिप्ट लाइब्रेरी के साथ आती है।
जैसा कि आप देख सकते हैं, इसमें कुछ सामान्य गुण शामिल हैं जैसे toString(), valueOf(), इत्यादि।
क्योंकि यह केवल उन गुणों पर जोर देता है जो जावास्क्रिप्ट ऑब्जेक्ट के लिए सामान्य हैं। तो आप इसमें स्ट्रिंग, बूलियन, नंबर, बिगिंट, सिंबल जैसी बॉक्सेबल ऑब्जेक्ट असाइन कर सकते हैं, लेकिन इसके विपरीत नहीं।
{} एक ऐसी वस्तु का वर्णन करता है जिसका अपना कोई सदस्य नहीं है, जिसका अर्थ है कि यदि आप इसके संपत्ति सदस्यों तक पहुंचने का प्रयास करते हैं तो टाइपस्क्रिप्ट शिकायत करेगा:
उपरोक्त कोड उदाहरण से, हम देख सकते हैं कि {} और ऑब्जेक्ट (अपरकेस्ड) में समान विशेषताएं हैं। यानी, यह केवल उन गुणों तक पहुंच सकता है जो सामान्य हैं (भले ही जावास्क्रिप्ट कोड तर्क सही हो), सभी बॉक्स करने योग्य ऑब्जेक्ट इसे असाइन किए जा सकते हैं, आदि।
ऐसा इसलिए है क्योंकि {} प्रकार प्रोटोटाइप श्रृंखला के माध्यम से उन सामान्य गुणों तक पहुंच सकता है, और इसकी अपनी कोई संपत्ति भी नहीं है। तो यह ऑब्जेक्ट (अपरकेस्ड) प्रकार के समान ही व्यवहार करता है। लेकिन वे विभिन्न अवधारणाओं का प्रतिनिधित्व करते हैं।
ऑब्जेक्ट (लोअरकेस) का मतलब किसी भी गैर-आदिम प्रकार से है, जिसे इस तरह कोड में व्यक्त किया गया है:
type PrimitiveType = | undefined | null | string | number | boolean | bigint | symbol; type NonPrimitiveType = object;
इसका मतलब है कि सभी गैर-आदिम प्रकार इसके लिए निर्दिष्ट नहीं हैं, और इसके विपरीत।
कई सामान्य पुस्तकालयों के स्रोत कोड में, हम गैर-आदिम प्रकारों का प्रतिनिधित्व करने के लिए रिकॉर्ड देख सकते हैं। इसका प्रभाव वस्तु (लोअरकेस) के समान ही होता है, लेकिन यह अधिक अर्थपूर्ण होता है।
यदि आपको मेरी सामग्री उपयोगी लगती है, तो कृपया सदस्यता लेने पर विचार करें। मैं हर रविवार को एक _ साप्ताहिक समाचार पत्र भेजता हूं _ नवीनतम वेब विकास अपडेट के साथ। आपके समर्थन के लिए धन्यवाद!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3