如果键入的函数未返回值,Dart分析器是否应该不显示警告?

时间:2018-12-13 07:47:25

标签: dart flutter

例如,为Redux StoreConnector小部件使用builder参数。

typedef ViewModelBuilder<ViewModel> = Widget Function(
  BuildContext context,
  ViewModel vm,
);

它表明它返回了一个小部件。在为此参数设置值时,分析器当前允许您(错误地)定义它而没有返回值。

builder: (BuildContext context, Function dispatch) {
         Column(
           mainAxisSize: MainAxisSize.min,
          ...
         }

这还导致构建函数为空,花了一些时间才意识到该错误。 当其他类型的函数未返回时,分析器将捕获。照片中显示了一个很好的示例,其中删除return时会显示警告。这不应该一致吗?我要问一下,然后再在Dart Github页面上打开票。 warning

其中显示了返回类型: Hover over Builder Function

1 个答案:

答案 0 :(得分:2)

这里的问题是匿名函数的类型为 @ECHO ON SET SourceDir=C:\folder\source SET DestDir=C:\folder\destination CD /D "C:\Program Files\7-Zip" FOR /F "TOKENS=*" %%F IN ('DIR /B /A-D "%SourceDir%"') DO ( 7z.exe a "%DestDir%\%%~NF.zip" "%SourceDir%\%%~NXF" ) EXIT 。返回Null Function(BuildContext, Function) 的函数是返回任何其他类型的函数的子类型。 (注意:今天是正确的,但对于非可空类型则不会如此)。

就今天的推理和语言而言,我认为IDE无法提供任何帮助。我提交了https://github.com/dart-lang/language/issues/133,以查看是否可以更改语言以简化此操作。