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

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

问题描述:

我有一个扩展父级的子类。父级导入一个我想在子级中重写的类。这可能吗?如何覆盖父类从打字稿中的孩子导入的类?

代码结构如下所示:

家长:

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

你不能,你必须重写引用TestClass的*方法*。 – jonrsharpe

在你的榜样,Parent实际上并没有延伸TestClass,但如果它没有你会能够从Child类中覆盖ParentTestClass中的方法 - 缩短的示例:

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