Comment obtenir le nom de la classe d'un objet en TypeScript à l'exécution ?
Bonjour à tous ! Je suis nouveau en TypeScript et j'ai rencontré un problème. J'ai une hiérarchie de classes et j'ai besoin de savoir à l'exécution de quelle classe exacte un objet est une instance. En JavaScript classique, j'utiliserais `obj.constructor.name`, mais en TypeScript, cela ne fonctionne pas comme je le souhaite.
Voici un exemple de code :
```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');
// J'essaie d'obtenir le nom de la classe
console.log(myPet.constructor.name); // En JS cela fonctionne, mais en TS...
```
Le problème est que lors de la compilation de TypeScript en JavaScript, surtout si une minification ou un bundler est utilisé (par exemple, webpack en mode production), `constructor.name` peut retourner non pas "Dog", mais une chaîne d'une seule lettre ou même `undefined`.