Потоковая аннотация для итерируемых и асинхронных итерируемых объектов? - PullRequest
0 голосов
/ 21 мая 2018

У меня есть функция foo, которая возвращает объект, который можно повторить:

const foo = () => ({
  [Symbol.iterator]: function * () {
    yield * [ 1, 2, 3 ]; 
  }, 
});

for (const x of foo()) {
  console.log(x);
}

// 1
// 2
// 3

Теперь я хотел бы аннотировать foo с определениями типа потока.Но как они выглядят?

Кроме того, как насчет версии async, bar?

const bar = () => ({
  [Symbol.asyncIterator]: async function * () {
    yield * [ 1, 2, 3 ]; 
  }, 
});

for await (const x of bar()) {
  console.log(x);
}
...