I have the ability to create my own generator function that returns a Generator. The type for this can be specified as
type Iterable = { [Symbol.iterator](): Generator };
, although it is not valid for standard built-in types like Array. This limitation may be due to the fact that these types are meant to iterate multiple times rather than just once.
According to the documentation on Array, the method returns a "new array iterator object" which you can learn more about by visiting https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterator_protocol
type IterableBuiltIn = { [Symbol.iterator](): { next: any, value: any, return: any };
const array: IterableBuiltIn = [1, 2, 3];
for (const value in array) {
console.log(value);
}