import { TypeOfMember } from '../types'; import { IEnumerable } from '../types'; import { applyOfType } from './applicators/applyOfType'; import { EnumerableFactory } from '../utilities/EnumerableFactory'; export function ofType( src: Iterable, type: new (...params: unknown[]) => TResult ): IEnumerable; export function ofType(src: Iterable, type: TypeOfMember): IEnumerable; export function ofType( src: Iterable, type: (new (...params: unknown[]) => TResult) | TypeOfMember ): IEnumerable { return applyOfType(new EnumerableFactory(), src, type); }