export function toObject( src: Iterable, keySelector: (item: TSource) => string ): Record; export function toObject( src: Iterable, keySelector: (item: TSource) => string, valueSelector: (item: TSource) => TValue ): Record; export function toObject( src: Iterable, keySelector: (item: TSource) => string, valueSelector?: (item: TSource) => TValue ): Record; export function toObject( src: Iterable, keySelector: (item: TSource) => string, valueSelector?: (item: TSource) => TValue ): Record { const obj: Record = {}; if (valueSelector) { for (const item of src) { const key = keySelector(item); obj[key] = valueSelector(item); } } else { for (const item of src) { const key = keySelector(item); obj[key] = item; } } return obj; }