geninq
Version:
A JavaScript version of the Linq library for Generators
12 lines (11 loc) • 672 B
TypeScript
import { Promised } from "./utils";
declare global {
interface Generator<T = unknown, TReturn = any, TNext = unknown> {
where(predicate: (item: T, index: number) => boolean): Generator<T, TReturn, TNext>;
where<TResult extends T>(predicate: (item: T, index: number) => item is TResult): Generator<TResult, TReturn, TNext>;
}
interface AsyncGenerator<T = unknown, TReturn = any, TNext = unknown> {
where(predicate: (item: T, index: number) => Promised<boolean>): AsyncGenerator<T, TReturn, TNext>;
where<TResult extends T>(predicate: (item: T, index: number) => item is TResult): AsyncGenerator<TResult, TReturn, TNext>;
}
}