रनटाइम पर TypeScript में किसी ऑब्जेक्ट का क्लास नाम कैसे प्राप्त करें?
सभी को नमस्ते! मैं TypeScript में नया हूँ और एक समस्या का सामना कर रहा हूँ। मेरे पास क्लासेज़ का एक पदानुक्रम है, और मुझे रनटाइम पर यह जानना है कि कोई ऑब्जेक्ट किस क्लास का इंस्टेंस है। सामान्य JavaScript में मैं `obj.constructor.name` का उपयोग करता, लेकिन TypeScript में यह मेरी उम्मीद के अनुसार काम नहीं करता।
यहाँ कोड का उदाहरण है:
```typescript
class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
}
class Dog extends Animal {
breed: string;
constructor(name: string, breed: string) {
super(name);
this.breed = breed;
}
}
const myPet = new Dog('Rex', 'Labrador');
// क्लास का नाम प्राप्त करने का प्रयास
console.log(myPet.constructor.name); // JS में यह काम करता है, लेकिन TS में...
```
समस्या यह है कि जब TypeScript को JavaScript में कंपाइल किया जाता है, खासकर यदि मिनिफिकेशन या बिल्ड (जैसे, production मोड में webpack) का उपयोग किया जाता है, तो `constructor.name` "Dog" नहीं बल्कि कोई एक-अक्षर वाला स्ट्रिंग या पूरी तरह से `undefined` लौटा सकता है। मैंने पढ़ा है कि यह इसलिए है क्योंकि...