有什么方法可以解决只允许最多扩展一个其他类的问题。

class Bar {

  doBarThings() {
    //...
  }

}

class Bazz {

  doBazzThings() {
    //...
  }

}

class Foo extends Bar, Bazz {

  doBarThings() {
    super.doBarThings();
    //...
  }

}

目前这是不可能的,TypeScript将给出错误。通过使用接口(interface),可以用其他语言解决此问题,但是用TypeScript解决这些问题是不可能的。

欢迎提出建议!

最佳答案

使用接口(interface)可以做到这一点:

interface IBar {
  doBarThings();
}

interface IBazz {
  doBazzThings();
}

class Foo implements IBar, IBazz {
  doBarThings() {}
  doBazzThings(){}
}

但是,如果您想以super/base的方式实现此目标,则必须做一些不同的事情,如下所示:
class FooBase implements IBar, IBazz{
  doBarThings() {}
  doBazzThings(){}
}

class Foo extends FooBase {
  doFooThings(){
      super.doBarThings();
      super.doBazzThings();
  }
}

10-06 15:24