'value' 缺少参数类型 |来自 Json 方法的错误

Missing parameter type for 'value' | error in from Json method

我的 class 中有一个来自 json 的方法,但我在这部分方法中遇到错误:

timeToSpendEachDay:
          (map['timeToSpendEachDay'] as Map<String, dynamic>).map<Days, Time>(
        (key, value) =>
            MapEntry<Days, Time>(_stringToDay(key), Time(value as int)),
      ),

第一个value下面有一条红线说Missing parameter type for 'value'.

这可以通过将 dynamic 更改为 int 来解决,但是当我这样做时,当我 运行 脚本说:

时会出现另一个错误
type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Map<String, int>' in type cast

那么我该如何解决这个问题?

此时该语言不需要类型,因此您看到的必须是额外启用的 lints 或分析器选项的结果。由于 value 的类型是 dynamic,它可能是“strict-inference”在您的 analysis_options.yaml 文件或 --no-implicit-dynamic 命令行标志中设置为 true。

我将参数更改为 , dynamic value 以使动态类型 显式 (因此不会推断)。或者,将其设置为 , Object? value,因为无论如何您所做的只是 as int,您不会 使用 dynamic 类型。