TypeScript में enum के नाम (keys) कैसे प्राप्त करें?
नमस्ते! मैं TypeScript में नया हूँ और enums के साथ काम करते समय एक समस्या का सामना कर रहा हूँ। मान लीजिए, मेरे पास यह enum है:
```typescript
enum Color {
Red = 1,
Green = 2,
Blue = 4
}
```
मैं इस enum के सभी नामों (keys) की एक सूची डायनामिक रूप से प्राप्त करना चाहता हूँ, यानी स्ट्रिंग्स की एक array: `["Red", "Green", "Blue"]`। मैंने `Object.keys(Color)` का उपयोग करने की कोशिश की, लेकिन परिणाम वैसा नहीं मिला जैसा मैं उम्मीद कर रहा था। कंसोल में संख्याएँ भी दिखाई देती हैं: `["1", "2", "4", "Red", "Green", "Blue"]`। ऐसा क्यों होता है? क्या यह TypeScript का bug है?
मुझे विशेष रूप से नाम प्राप्त करने की आवश्यकता है, उदाहरण के लिए, UI पर dropdown में प्रदर्शित करने के लिए या उपयोगकर्ता द्वारा दर्ज किए गए मानों को मान्य करने के लिए। इसे सही तरीके से कैसे करें? क्या कोई built-in function है या मुझे अपना खुद का लिखना होगा? उदाहरणों के साथ विस्तृत स्पष्टीकरण के लिए आभारी रहूँगा।
यह भी जानना चाहूँगा कि numeric और string enums के साथ कैसे व्यवहार करें — क्या दृष्टिकोण में कोई अंतर है? पहले से धन्यवाद!
<<>>
Object.keys() संख्याएँ क्यों लौटाता है?
यह कोई bug नहीं है। TypeScript में, numeric enums को JavaScript में एक ऑब्जेक्ट के रूप में compile किया जाता है जिसमें reverse mapping होता है। इसका मतलब है कि enum के प्रत्येक सदस्य के लिए, key से value और value से key दोनों mappings बनाए जाते हैं। इसलिए `Object.keys(Color)` दोनों sets को लौटाता है।