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