Почему дженерики TypeScript IterableIterator <> и Generator <> немного отличаются? - PullRequest
0 голосов
/ 26 октября 2019

В TypeScript (3.6.3) Generator <> практически идентичен IterableIterator <> . Когда Generator <> расширяет Iterator <> , по умолчанию используется третий общий аргумент (TNext) до unknown . Итератор <> сам по умолчанию TNext до undefined . Так что Generator и Iterator IterableIterator ) не выстраиваются в линию так, как могли бы.

let gen2:IterableIterator<string>;

function* gen1():Generator<string> {
    yield* gen2;
}

Строка yield * содержит ошибку: «Невозможно делегировать итерацию значению, поскольку метод« next »ее итератора ожидает тип« undefined », но содержащийся генератор всегда будет отправлять« unknown ». Ts(2766) ".

Я что-то упустил? Есть ли для этого веская причина?

...