Я думаю, что ответом на мою проблему является то, что я сделал неправильное утверждение, думая, что Iterator
является допустимым объектом для передачи for...of
.
Причина того, что пример кода без ввода текста работает в браузере, заключается в том, что возвращаемое значение генератора является Iterator
и Iterable
, но для for...of
принимается только Iterable
, как написано в MDN страница .
Дав явному генератору явный Iterator
возвращаемый тип, я сужал его таким образом, что заставлял TypeScript думать, что у него нет возможности Iterable
.
Следующий код, использующий только Iterator
, не работает, как и ожидалось в моем браузере
const it = {
next: () => ({value: 1, done: false})
}
for (const val of it) {
console.log(val)
}