Comment obtenir le nom de la classe d'un objet à l'exécution en TypeScript ?
Bonjour ! J'écris une application en TypeScript qui gère la sérialisation de différentes entités. J'ai une hiérarchie de classes et j'ai besoin, à l'exécution du programme, de déterminer de quelle classe exacte un objet est une instance, afin de le traiter correctement.
Par exemple, j'ai une classe de base `Shape` et deux héritières : `Circle` et `Rectangle`. Je veux écrire une fonction qui prend un tableau de formes et affiche le type de chacune. En JavaScript, j'utiliserais `obj.constructor.name`, mais en TypeScript, cette propriété peut être absente ou indéfinie après minification/compilation. De plus, TypeScript est fortement typé, et accéder à `constructor` ne donne pas toujours le résultat attendu.
Voici un code simplifié qui ne fonctionne pas comme je le souhaite :
```typescript
class Shape {
constructor(public name: string) {}
}
class Circle extends Shape {
constructor(public radius: number) {
super('Circle');
}
}
class Rectangle extends Shape {
construct
No answers yet.
Connectez-vous pour laisser une réponse
Blogs