TypeScript 原型链继承: 在不使用 extends 的情况下实现继承并保留子类方法
在 TypeScript 中,当无法使用 extends 关键字实现继承时,可以使用原型链继承来实现继承并保留子类方法。这可以通过创建一个中间类,在中间类中使用 Object.create() 方法来继承父类的原型,并在该中间类中添加子类方法。然后再创建子类时,将中间类的实例作为子类的原型。
以下是一个示例代码:
class Parent {
constructor() {}
public methodA() {}
public methodB() {}
}
const parent = new Parent();
class Middle extends Parent {
constructor() {
super();
}
public methodC() {}
}
class Child extends Middle {
constructor() {
super();
}
}
const child = new Child();
child.methodA(); // 可以调用父类的 methodA 方法
child.methodB(); // 可以调用父类的 methodB 方法
child.methodC(); // 可以调用子类新增的 methodC 方法
在上述代码中,我们创建了一个中间类 Middle,它继承自父类 Parent,并在其中添加了 methodC 方法。然后在子类 Child 中,我们使用 extends 关键字继承自中间类 Middle,这样就实现了继承并保留 methodC 方法的目的。
通过这种方式,即使在无法使用 extends 关键字的情况下,我们也能通过原型链继承来实现继承并保留子类方法。
原文地址: https://www.cveoy.top/t/topic/o0Fy 著作权归作者所有。请勿转载和采集!