如何覆盖父类在打字稿中从子导入的类?

时间:2017-10-09 15:56:45

标签: typescript

我有一个扩展父母的子类。父进程导入了一个我要在子进程中覆盖的类。这可能吗?

代码结构如下:

父:

import {TestClass} from './TestClass';
export class Parent {
  /** etc **/
}

子:

import {Parent} from './Parent';
export class Child extends Parent {
  constructor() {
    super();
  }
  //how to import/override TestClass from Parent?
}

1 个答案:

答案 0 :(得分:0)

在您的示例中,Parent实际上并未扩展TestClass,但如果确实如此,则可以从内部覆盖来自ParentTestClass的方法Child类 - 缩短的例子:

class TestClass {
    methodOne() {
        return 1;
    }
}

class Parent extends TestClass {
    methodTwo() {
        return this.methodOne() + 1;
    }
}

class Child extends Parent {
    methodOne() {
        return 11;
    }
}

var x = new Child();

// 11 (rather than 1)
alert(x.methodOne());

// 12 (rather than 2)
alert(x.methodTwo());

请注意调用methodOne方法的父方法如何根据子methodOne而不是测试类methodOne返回值。