"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > टाइपस्क्रिप्ट की \"कॉन्स्ट के रूप में\" की शक्ति को अनलॉक करना: कम मूल्यांकित सुविधा जिसे आपको जानना आवश्यक है

टाइपस्क्रिप्ट की \"कॉन्स्ट के रूप में\" की शक्ति को अनलॉक करना: कम मूल्यांकित सुविधा जिसे आपको जानना आवश्यक है

2024-11-08 को प्रकाशित
ब्राउज़ करें:805

Unlocking the Power of TypeScript

जब टाइपस्क्रिप्ट में सबसे कम रेटिंग वाली विशेषताओं पर चर्चा की जाती है, तो जो अक्सर रडार के नीचे उड़ जाती है, वह अस कॉन्स्ट अभिकथन है। यह सुविधा विभिन्न परिदृश्यों में अविश्वसनीय रूप से उपयोगी है, जो डेवलपर्स के लिए महत्वपूर्ण लाभ प्रदान करती है।

"एज़ कॉन्स्ट" को समझना

शुरू करने के लिए, आइए परिभाषित करें कि const क्या करता है। कल्पना कीजिए कि आपके पास इस तरह की एक वस्तु है:

const routes = {
  home: "/home",
  profile: "/profile",
  notifications: "/notification",
};

यदि आप मार्गों के गुणों पर होवर करते हैं, तो आप देखेंगे कि वे स्ट्रिंग के रूप में टाइप किए गए हैं। उदाहरण के लिए, Routes.home को स्ट्रिंग के रूप में टाइप किया गया है, "/home" के रूप में नहीं। ऐसा इसलिए है क्योंकि टाइपस्क्रिप्ट मानता है कि ये गुण बदल सकते हैं, इसलिए यह उन्हें परिवर्तनशील स्ट्रिंग के रूप में अनुमान लगाता है।

अब, एक ऐसे फ़ंक्शन पर विचार करें जिसे केवल इन विशिष्ट मार्गों को स्वीकार करना चाहिए। आप इस प्रकार को परिभाषित कर सकते हैं:

function changeRoute(route: "home" | "profile" | "notifications") {
  // navigate to route
}

यह दृष्टिकोण काम करता है, लेकिन यह दोहराव वाला और त्रुटि-प्रवण है। यदि आप कोई नया मार्ग जोड़ते हैं, तो आपको फ़ंक्शन की प्रकार परिभाषा को अपडेट करना होगा, जो आदर्श नहीं है।

वस्तुओं को अपरिवर्तनीय बनाना

यहाँ पर const काम में आता है। कॉन्स्ट के रूप में उपयोग करके, आप ऑब्जेक्ट को अपरिवर्तनीय बना सकते हैं, और टाइपस्क्रिप्ट केवल स्ट्रिंग के बजाय शाब्दिक प्रकारों का अनुमान लगाएगा।

const routes = {
  home: "/home",
  profile: "/profile",
  notifications: "/notification",
} as const;

अब, रूट्स.होम को "/होम", रूट्स.नोटिफिकेशन्स को "/नोटिफिकेशन्स" के रूप में टाइप किया जाता है, इत्यादि। यह अपरिवर्तनीयता सुनिश्चित करती है कि इन गुणों को बदला नहीं जा सकता है, और टाइपस्क्रिप्ट उनके विशिष्ट मूल्यों को पहचानता है।

व्यावहारिक उपयोग का मामला

आइए एक फ़ंक्शन में const के रूप में एकीकृत करें:

function changeRoute(route: typeof routes[keyof typeof routes]) {
  // navigate to route
}

यहां, टाइपऑफ़ रूट्स को रूट्स ऑब्जेक्ट का प्रकार मिलता है, और कीऑफ़ टाइपऑफ़ रूट्स कुंजियाँ निकालता है, जिसके परिणामस्वरूप रूट मानों के सटीक प्रकार प्राप्त होते हैं। यह फ़ंक्शन को बार-बार अपडेट की आवश्यकता के बिना रूट ऑब्जेक्ट में किसी भी बदलाव के अनुकूल बनाता है।

निकालने के प्रकार

as const का एक और शक्तिशाली पहलू यह है कि यह प्रकार निष्कर्षण को कैसे सक्षम बनाता है। उदाहरण के लिए:

type Routes = (typeof routes)[keyof typeof routes];

इस प्रकार की परिभाषा गतिशील रूप से रूट ऑब्जेक्ट के मूल्यों को निकालती है, जिससे फ़ंक्शन अधिक रखरखाव योग्य हो जाता है और अतिरेक कम हो जाता है।

निष्कर्ष

टाइपस्क्रिप्ट में as const पुष्टि एक बहुमुखी और शक्तिशाली सुविधा है जो टाइप सुरक्षा में काफी सुधार कर सकती है और आपके कोड में अतिरेक को कम कर सकती है। वस्तुओं को अपरिवर्तनीय बनाकर और सटीक प्रकार के अनुमान को सक्षम करके, यह कोडबेस को बनाए रखने और विस्तारित करने को सरल बनाता है। इसे आज़माएं, और आप देखेंगे कि यह आपके टाइपस्क्रिप्ट प्रोजेक्ट्स को कैसे बेहतर बना सकता है!
हैप्पी कोडिंग!

[प्रकटीकरण: यह लेख एक सहयोगात्मक प्रयास है, जिसमें बेहतर अभिव्यक्ति के लिए चैटजीपीटी की सहायता से मेरे अपने विचारों को जोड़ा गया है।]

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/sharoztaneer/unlocking-the-power-of-typescripts-as-const-the-underred-feature-you-need-to-know-25l7?1 यदि है किसी भी उल्लंघन को हटाने के लिए कृपया [email protected] से संपर्क करें
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3