import { throws } from '../utils' export function count(source: Iterable, predicate?: (item: TSource) => boolean): number { throws.ThrowIfNull('source', source) predicate = predicate || (() => true) let count = 0 for (let item of source) { if (predicate(item)) { count++ } } return count }