/** * const gen = fibGenerator(); * gen.next().value; // 0 * gen.next().value; // 1 */ function* fibGenerator(): Generator { let a = 0; let b = 1; let iter = 0; while (true) { if (iter < 2) { yield iter; iter++; } else { yield a + b; [a, b] = [b, a + b]; } } };