如何在TypeScript上检查类中存在的方法

时间:2017-07-13 14:38:23

标签: typescript

如何在父类中检查或标记可以存在于继承类中的方法。 例如,我有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();

1 个答案:

答案 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();
        }
    }
}