Inheritance 由于接口不同,两级类和接口扩展抛出dart2js错误

Inheritance 由于接口不同,两级类和接口扩展抛出dart2js错误,inheritance,interface,dart,dart2js,Inheritance,Interface,Dart,Dart2js,我有以下的情况,这是有点难以解释,但我会尽我所能把它弄清楚 我正在为WebRTC开发一个包,该包应该用于构建dart应用程序。已经完成了,但我决定用以下概念重写包: 仅向用户和一个可以实例化的公共类提供接口 将实现保持为在包中打开 因此,我们必须在私有实现中的某个点实现接口 我重写了我的大多数类(添加了一个),为所有类创建了接口,并让原始类实现这些接口 现在的问题是,我有一个基本的实现,我想在内部扩展,也可以通过扩展接口来实现。代码如下所示: /---基本实现 抽象类对等{} 抽象类P2PC

我有以下的情况,这是有点难以解释,但我会尽我所能把它弄清楚

我正在为WebRTC开发一个包,该包应该用于构建dart应用程序。已经完成了,但我决定用以下概念重写包:

  • 仅向用户和一个可以实例化的公共类提供接口
  • 将实现保持为在包中打开
  • 因此,我们必须在私有实现中的某个点实现接口
我重写了我的大多数类(添加了一个),为所有类创建了接口,并让原始类实现这些接口

现在的问题是,我有一个基本的实现,我想在内部扩展,也可以通过扩展接口来实现。代码如下所示:

/---基本实现
抽象类对等{}
抽象类P2PClient{}
//---协议扩展
抽象类协议
扩展对等{
}
抽象类ProtocolP2PClient
扩展p2p客户端

{ } /** *实现 */ 类_Peer实现Peer{ } 类\u p2p客户端 实现p2p客户端{ } /** * ----- */ 类\u协议2p客户端 扩展p2p客户端 实现ProtocolP2PClient{ } 类协议 扩展对等 实现ProtocolPeer{ }

当我现在尝试使用dart2js将其编译为JavaScript时,会出现以下错误:

错误:Dart2js当前不支持具有不同类型参数的同一类的继承:P2PClient和P2PClient都是_ProtocolP2PClient的超类型。
类\u协议2p客户端
^^^^^
我知道问题是什么:

  • _P2P客户端实现
    P2P客户端
  • _ProtocolP2PClient实现
    ProtocolP2PClient
但我认为,如果你仔细看一下,情况大致相同:

ProtocolP2PClient将使用ProtocolPeer扩展P2PClient,因为ProtocolPeer扩展了Peer,所以接口实际上没有区别。这仅仅是dart2js的一个限制,我应该提交一个功能请求,还是我可以提出任何其他实现?

看起来像这个bug