如何在运行时检查B类是否扩展A.

问题描述 投票:5回答:1

在TypeScript / Javascript中,如何检查B类是否扩展了A类

class A {
  ...
}

class B extends A {
  ...
}

assert(B extends A) // How to do something like this?

回答:

有几种方法可以做到这一点。感谢@Daniel和@AviatorX

B.prototype instanceof A        // true
Object.getPrototypeOf(B) === A  // true
Reflect.getPrototypeOf(B) === A // true

不确定最常用的TypeScript惯用方法是什么,或者是否有任何丢失的边缘情况但是适用于我的用例

javascript typescript es6-class
1个回答
1
投票

您可以使用instanceof检查构造函数原型是否是A的实例:

export class A {
}

export class B extends A {
}

console.log(B.prototype instanceof A);

为我输出true

© www.soinside.com 2019 - 2024. All rights reserved.