在 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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录