Generators within JavaScript (and TypeScript) are similar to C# IEnumerable’s such that you can yield a value multiple times from a generator function (in either JavaScript or TypeScript), i.e.
function* someValues() { yield 1; yield 2; yield 3; }
or within a TypeScript class we can write
export default class MyClass { *someValues() { yield 1; yield 2; yield 3; } }
To use the someValues function we can loop using
for(let i of someValues()) { console.log(i); }
Each item returned is a type of { value, done }, so for example
var values = someValues(); console.log(values.next()); console.log(values.next()); console.log(values.next()); console.log(values.next());
which would output
{ value: 1, done: false } { value: 2, done: false } { value: 3, done: false } { value: undefined, done: true }