import { IterableActivity, Source } from "./activity"; // Array.entries function entriesGen(): IterableActivity { return function* (source: Source) { let i = -1; for (const item of source) { yield [++i, item]; } }; } export function entries(): IterableActivity; export function entries(source: Source): IterableIterator<[number, T]>; export function entries(source?: Source): IterableActivity | IterableIterator<[number, T]> { return source ? entriesGen()(source) : entriesGen(); }