Avatar ·

如何在 TypeScript 中获取对象的类名?

你好!我正在用 TypeScript 编写一个处理不同实体序列化的应用程序。我有一个类层次结构,需要在运行时确定对象是哪个类的实例,以便正确处理它。 例如,我有一个基类 `Shape` 和两个子类:`Circle` 和 `Rectangle`。我想编写一个函数,它接收一个形状数组,并为每个形状输出其类型。在 JavaScript 中,我会使用 `obj.constructor.name`,但在 TypeScript 中,这个属性可能在压缩/构建后缺失或未定义。此外,TypeScript 是强类型的,直接访问 `constructor` 并不总能得到预期结果。 以下是一个简化但无法按预期工作的代码: ```typescript class Shape { constructor(public name: string) {} } class Circle extends Shape { constructor(public radius: number) { super('Circle'); } } class Rectangle extends Shape { constructor