Dev Highlights

Доки по разработке

This project is maintained by teniryte

Собственные итераторы

Принципы

Пример

function range(start: number, end: number, step = 1) {
  return {
    [Symbol.iterator]() {
      return this;
    },
    next() {
      if (start < end) {
        start = start + step;
        return { value: start, done: false };
      }
      return { done: true, value: end };
    },
  };
}

for (const n of range(0, 10, 2)) {
  console.log(n);
}

Практика