TypeScript从扩展类函数重写内调用基类函数

问题描述

如果我有一个扩展类重写了基类函数,可以在扩展类函数调用基类函数吗?类似于:

class Base {

  DoSomething() {

    console.log("base class function");

  }

}

class Derived extends Base {

  DoSomething() {

    this.base.DoSomething();

    console.log("extended class function");

  }

}

Derived.DoSomething()的输出在理想情况下将类似于:

"base class function"
"extended class function"

在TypeScript中可以吗?

解决方法

是的,您可以通过super keyword

访问父方法

class Base {
  foo() {
    console.log("base class function");
  }
}

class Derived extends Base {
  foo() {
    super.foo();
    console.log("extended class function");
  }
}

(new Derived()).foo()