如何在 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