如何在父类中检查或标记可以存在于继承类中的方法。 例如,我有B类扩展到A类。
class A {
onSomethingHappend() {
// how I can check that method exist?
this.dependedAction();
}
}
class B extends A {
dependedAction() {
console.log('dependedAction');
}
}
const b = new B();
b.onSomethingHappend();
答案 0 :(得分:3)
你可以把它变成抽象的:
abstract class A {
onSomethingHappend() {
this.dependedAction();
}
abstract dependedAction(): void;
}
然后如果类B
没有实现它,编译器就会抱怨。
另一种选择是:
class A {
onSomethingHappend() {
if (typeof (this as any).dependedAction === "function") {
(this as any).dependedAction();
}
}
}