كيفية الحصول على اسم الفئة لكائن في 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، خاصةً إذا تم استخدام تصغير (minification) أو بناء (build) (مثل webpack مع وضع الإنتاج)، قد لا يُرجع `constructor.name` القيمة "Dog"، بل سلسلة مكونة من حرف واحد أو `undefined`. لقد قرأت