(Typescript)比较两个对象的类型

时间:2019-01-10 14:53:44

标签: typescript

我有一个抽象基类,其中有许多不同的子类对其进行扩展。如果给定了该类的两个实例,是否可以检查它们是否具有相同的子类型?

我想做这样的事情,但是typeof只是返回“对象”,所以它毫无用处

compare(a: Parent, b: Parent): boolean {
    return typeof a === typeof b
}

1 个答案:

答案 0 :(得分:2)

也许可以通过比较the constructor property

compare(a: Parent, b: Parent): boolean {
    return a.constructor === b.constructor
}

但这不是一个坚如磐石的解决方案,因为属性constructor can be reassigned

  

以下示例显示如何修改通用对象的构造函数值。由于true1"test"具有只读的本机构造函数,因此不会受到影响。此示例说明依赖对象的constructor属性并不总是安全的。 […]