Types Dart:函数X不是函数Y的子类型

Types Dart:函数X不是函数Y的子类型,types,dart,Types,Dart,在Dart中,如果: MyWidget属于Widget类型 那么为什么: (BuildContext,ViewModel)=>MyWidget 不是的子类型: (构建上下文,动态)=>小部件 我该如何解决这个问题呢?因为动态是视图模型的一种超级类型,所以在需要接受(BuildContext,ViewModel)的函数时,不能使用接受(BuildContext,dynamic)作为参数的函数。后者可以使用第二个参数调用,这些参数不是ViewModel实例 因此,问题在于参数,而不是返回类型。请参阅

在Dart中,如果:

MyWidget
属于
Widget
类型

那么为什么:

(BuildContext,ViewModel)=>MyWidget

不是的子类型:

(构建上下文,动态)=>小部件


我该如何解决这个问题呢?

因为
动态
视图模型的一种超级类型,所以在需要接受
(BuildContext,ViewModel)
的函数时,不能使用接受
(BuildContext,dynamic)
作为参数的函数。后者可以使用第二个参数调用,这些参数不是
ViewModel
实例


因此,问题在于参数,而不是返回类型。

请参阅。@JonahWilliams此链接完美地回答了我的问题。我来自Java,在那里我从未真正考虑过函数子类型。