У меня есть эта функция генератора, которая дает случайные значения из массива:
export const fisherYatesShuffle = function* <T>(deck: Array<T>) : Generator<T, void, T> {
for (let i = deck.length - 1; i >= 0; i--) {
const swapIndex = Math.floor(Math.random() * (i + 1));
[deck[i], deck[swapIndex]] = [deck[swapIndex], deck[i]];
yield deck[i];
}
};
когда я перебираю его:
for(const V of fisherYatesShuffle<string>(['a','b','c'])){
// typeof V here should be string
}
но TS, похоже, не знает, что V - это строка.
кто-нибудь знает, есть ли исправление?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ваш возвращаемый тип неверен.
Вы можете использовать
Generator<T, void, unknown> это то, что делает компиляторGenerator<T, void, T | undefined так как next() тоже может вернуться undefinedИли вообще не комментировать