yield_of_invalid_type
类型为“{0}”的 yielded 值必须可以赋值给“{1}”。
由 'yield*' 表达式推断出的类型“{0}”必须可以赋值给“{1}”。
描述
#当 yield
或 yield*
表达式生成对象的类型与生成器(使用 sync*
或 async*
标记的函数或方法)返回的 Iterable
或 Stream
类型应返回的对象类型不匹配时,分析器会生成此诊断信息。
示例
#以下代码会产生此诊断信息,因为 getter zero
被声明为返回一个生成整数的 Iterable
,但 yield
却从该 iterable 返回了一个字符串。
dart
Iterable<int> get zero sync* {
yield '0';
}
常见修复方法
#如果函数的返回类型正确,则修改关键字 yield
后面的表达式以返回正确的类型。
dart
Iterable<int> get zero sync* {
yield 0;
}
如果 yield
后面的表达式正确,则更改函数的返回类型以允许它。
dart
Iterable<String> get zero sync* {
yield '0';
}