Fix ReadableStream incorrectly marked as a sync iterable #1134
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
It looks like a regression slipped into the
ReadableStream
interface. In TypeScript 4.4, it incorrectly has a[Symbol.iterator]
method, along with automaticforEach
/entries
/keys
/values
methods. In realityReadableStream
is anasync iterable<any>
, meaning it has a[Symbol.asyncIterator]
andvalues
method (both returning an async iterator).Since we don't (yet) have a way to express this, I've changed the emitter to instead ignore
async iterable
declarations, so at least we don't add any non-existent methods. Alternatively, we could do this properly: tackle microsoft/TypeScript#29867 and introducelib.dom.asynciterable.d.ts
.