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 की तुलना में एक अधिक मजबूत विकल्प प्रदान करते हैं:
वेब विकास और तकनीकी टीम प्रबंधन में विशेषज्ञ, मैं प्रभावी डिजिटल समाधानों के निर्माण और अनुकूलन में विशेषज्ञता रखता हूं। React.js, Node.js, TypeScript और Symfony जैसी आधुनिक तकनीकों की गहरी समझ के साथ, मैं offroadLabs में विभिन्न क्षेत्रों की कंपनियों के लिए जटिल SaaS परियोजनाओं की सफलता सुनिश्चित करता हूं, डिजाइन से लेकर प्रोडक्शन तक।
offroadLabs में, मैं तकनीकी विशेषज्ञता और सहयोगात्मक दृष्टिकोण को जोड़ते हुए कस्टम विकास सेवाएं प्रदान करता हूं। चाहे एक नवीन SaaS समाधान बनाना हो, मौजूदा एप्लिकेशन को आधुनिक बनाना हो, या एक टीम के कौशल विकास में सहायता करना हो, मैं प्रत्येक परियोजना की विशिष्ट आवश्यकताओं के अनुरूप मजबूत और प्रभावी समाधान प्रदान करने के लिए प्रतिबद्ध हूं।
मैं ऐक्स-एन-प्रोवेंस के आसपास या पूर्ण रिमोट असाइनमेंट के लिए उपलब्ध हूं।