diff --git a/src/internal/baseIteratee.ts b/src/internal/baseIteratee.ts index 1b5fbdf..88fda0c 100644 --- a/src/internal/baseIteratee.ts +++ b/src/internal/baseIteratee.ts @@ -8,6 +8,7 @@ import type { ObjectIterateeCustom, ObjectIterator, PropertyName, + ValueKeyIteratee, } from './baseIteratee.type' // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -52,9 +53,8 @@ function isMatch(element: unknown, source: unknown): boolean { export function baseIteratee(iteratee: ObjectIterateeCustom): ObjectIterator export function baseIteratee(iteratee: ListIterateeCustom): ListIterator -export function baseIteratee( - iteratee: ListIterateeCustom | ObjectIterateeCustom, -): ListIterator | ObjectIterator { +export function baseIteratee(iteratee: ValueKeyIteratee): ObjectIterator +export function baseIteratee(iteratee: unknown) { if (iteratee == null) { return function (element: T) { return element as unknown as TResult diff --git a/src/internal/baseIteratee.type.ts b/src/internal/baseIteratee.type.ts index a7f44f2..329b43a 100644 --- a/src/internal/baseIteratee.type.ts +++ b/src/internal/baseIteratee.type.ts @@ -12,6 +12,8 @@ export type ListIterateeCustom = ListIterator | Iteratee export type ListIteratorTypeGuard = (value: T, index: number, collection: List) => value is S export type ValueIteratee = ((value: T) => unknown) | IterateeShorthand +export type ValueKeyIteratee = ((value: T, key: string) => unknown) | IterateeShorthand +export type ValueKeyIterateeTypeGuard = (value: T, key: string) => value is S export type ObjectIterator = (value: T[keyof T], key: string, collection: T) => TResult export type ObjectIteratee = ObjectIterator | IterateeShorthand