for..of
でloopできるObjectが実装しているInterfacetsinterface Iterable<T> {
[Symbol.iterator](): Iterator<T>;
}
tsconst g = [1, 2, 3][Symbol.iterator](); // :: IterableIterator<number>
console.log(g.next()); // { value: 1, done: false }
console.log(g.next()); // { value: 2, done: false }
console.log(g.next()); // { value: 3, done: false }
console.log(g.next()); // { value: undefined, done: true }