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';
}