我收到以下错误。
不能将参数类型“dynamic”分配给参数类型“() -> dynamic”
例子是:
outerFunc(somevar) {
return () {....}
}
anOtherFunction(func()) {....}
anOtherFunction(outerFunc('test'));
这些发生在我返回一个匿名函数时,在启用 analysis_options.yaml 的强模式下。
strong-mode:
implicit-casts: false
最佳答案
outerFunc
未指定返回类型,因此假定为 dynamic
。
您可以创建一个 typedef 并将其用作 outerFunc
的返回类型。
无法从 return 语句推断出函数类型。
typedef dynamic F();
F outerFunc(somevar) {
return () {};
}
您也可以内联编写函数类型
dynamic Function() outerFunc(somevar) {
return () {};
}
关于Dart 强模式 : error on anonymous function return,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44900562/