Avatar ·

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