Closed
Description
Suggestion
Current definition of IteratorResult
demands value
to be provided regardless of whether done
is true
or false
.
Suggestion: Change IteratorResult
to something like this
type IteratorResult<T> =
{ readonly done: true } |
{ readonly done: false, readonly value: T }
Use Cases
I am currently trying to build a custom async iterator that cannot be done with async generator, it is absurd that I had to provide some value when iteration is done.
Checklist
My suggestion meets these guidelines:
- This wouldn't be a breaking change in existing TypeScript/JavaScript code
- This wouldn't change the runtime behavior of existing JavaScript code
- This could be implemented without emitting different JS based on the types of the expressions
- This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
- This feature would agree with the rest of TypeScript's Design Goals.