Я пытаюсь назначить тип возврата для функции ниже:
async function *sleepyNumbers() { // what TypeScript type is this?
let n = 0;
while (true) {
yield new Promise(resolve => resolve(n++));
await new Promise(resolve => setTimeout(resolve, 500));
}
}
(async () => {
for await (const i of sleepyNumbers())
console.log(i);
})();
Генератор дает Обещание, которое разрешается до number
. Установка типа Promise<number>
завершается неудачно с этим сообщением об ошибке:
TS2739: Тип «AsyncGenerator» пропускает следующие свойства из типа «Обещание»: then, catch, [Symbol.toStringTag], наконец
Iterable
привел к аналогичной ошибке.
Я могу установить тип на AsyncGenerator
, но этого недостаточно, чтобы указать c. Каков правильный синтаксис TypeScript для возвращаемого типа этой функции?