TypeScript: Maps को Enums पर क्यों प्राथमिकता दें?
🇮🇳
TypeScript में enum एक निश्चित मूल्यों के समूह को प्रस्तुत करने के लिए एक स्वाभाविक विकल्प लग सकता है। हालांकि, इनमें महत्वपूर्ण सीमाएं हैं जो कोड की रखरखाव क्षमता और प्रदर्शन को प्रभावित कर सकती हैं। आइए देखें कि Map अक्सर एक बेहतर विकल्प क्यों है।
Enums की समस्या
जटिल एप्लिकेशन विकसित करते समय Enums में कई प्रमुख कमियां सामने आती हैं:
कठोरता: गतिशील रूप से संशोधित नहीं किया जा सकता
प्रदर्शन: वर्बोस JavaScript कोड जनरेट करता है
जटिल टाइपिंग: इंट्रोस्पेक्शन और टाइप यूनियन में कठिनाइयां
बंडल आकार: अंतिम कोड आकार पर प्रभाव
एक उदाहरण देखें:
typescript
1// TypeScript कोड
2enum Status {
3 Active = 'ACTIVE',
4 Inactive = 'INACTIVE',
5}
6
7// ट्रांसपाइल्ड JavaScript कोड
8var Status = {
9 Active: 'ACTIVE',
10 Inactive: 'INACTIVE',
11 ACTIVE: 'Active',
12 INACTIVE: 'Inactive',
13};
14(function (Status) {
15 Status['Active'] = 'ACTIVE';
16 Status['Inactive'] = 'INACTIVE';
17})(Status || (Status = {}));
यह ट्रांसपाइल्ड कोड उत्पन्न करता है:
दर्पण गुणों (key ↔ value) वाला एक ऑब्जेक्ट
एक अनावश्यक IIFE (Immediately Invoked Function Expression)
प्रत्येक मान के लिए दोहरा संदर्भ
अतिरिक्त कोड जो प्रदर्शन को प्रभावित करता है
Maps के साथ समाधान
Map और TypeScript ऑब्जेक्ट्स एक अधिक सुरुचिपूर्ण और लचीला दृष्टिकोण प्रदान करते हैं:
typescript
1// const और types के साथ समाधान
2const Status = {
3 Active: 'ACTIVE',
4 Inactive: 'INACTIVE',
5} as const;
6
7// स्वचालित रूप से अनुमानित टाइप
8type Status = (typeof Status)[keyof typeof Status];
9
10// सरल और कुशल ट्रांसपाइल्ड कोड
11const Status = {
12 Active: 'ACTIVE',
13 Inactive: 'INACTIVE',
14};
Maps के लाभ
टाइप-सुरक्षा
typescript
1function processStatus(status: Status) {
2 // अमान्य स्थिति पर कम्पाइलेशन त्रुटि
3 console.log(status);
4}
5
6// रनटाइम सत्यापन
7const isValidStatus = (status: string): status is Status =>
8 Object.values(Status).includes(status as Status);
1function isHttpSuccess(status: number): status is HttpSuccessStatus {
2 return [200, 201, 204].includes(status);
3}
क्रमिक माइग्रेशन: मौजूदा enums कोड को माइग्रेट करने के लिए: 1. सबसे
समस्याग्रस्त enums की पहचान करें 2. समतुल्य Maps बनाएं 3. इम्पोर्ट्स अपडेट
करें 4. उपयोग करने वाले फ़ंक्शंस की टाइपिंग को अनुकूलित करें
निष्कर्ष
Maps, enums की तुलना में एक अधिक मजबूत विकल्प प्रदान करते हैं:
TypeScript में Singleton पैटर्न को पूरी तरह से समझने के लिए एक संपूर्ण मार्गदर्शिका। बेसिक और एडवांस कार्यान्वयन, सर्वोत्तम अभ्यास, और आम गलतियों से बचने के तरीके जानें।
TypeScript में मेमोइज़ेशन को लागू करने की व्यावहारिक गाइड। जानें कि कैसे अपने फ़ंक्शन के एक्जीक्यूशन टाइम को 90% तक कम करें और अपने TypeScript एप्लिकेशन के प्रदर्शन को सुरक्षित रूप से अनुकूलित करें।
दस साल तक OffroadLabs चलाने के बाद अब मैं प्रभावशाली Symfony, React और TypeScript मॉडर्नाइजेशन पर ध्यान देता हूँ, डिलीवरी सुरक्षित रखता हूँ और टीमों को सक्षम बनाता हूँ।