'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
类型。
我的 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
类型。