Dart强模式:匿名函数返回错误

时间:2017-07-04 08:17:24

标签: dart

我收到以下错误。 The argument type 'dynamic' can't be assigned to the parameter type '() -> dynamic' 例子是:

outerFunc(somevar) {
    return () {....} 
}
anOtherFunction(func()) {....}

anOtherFunction(outerFunc('test'));

当我以强模式返回匿名函数并且启动了analysis_options.yaml时会发生这种情况。

strong-mode:
  implicit-casts: false

1 个答案:

答案 0 :(得分:1)

outerFunc未指定返回类型,因此假定为dynamic。 您可以创建一个typedef并将其用作outerFunc的返回类型。 无法从return语句中推断出函数类型。

typedef dynamic F();

F outerFunc(somevar) {
  return () {};
}

您也可以在线编写函数类型

dynamic Function() outerFunc(somevar) {
  return () {};
}