Back to Es Toolkit

overSome (Lodash Compatibility)

docs/reference/compat/util/overSome.md

1.46.12.2 KB
Original Source

overSome (Lodash Compatibility)

::: warning Use Array.some instead

This overSome function incurs additional overhead in the process of converting and checking predicate functions.

Use the faster and more modern Array.some method instead.

:::

Creates a function that checks if any of the predicate functions return truthy for the given value.

typescript
const anyValidator = overSome(predicates);

Usage

overSome(...predicates)

Takes multiple predicate functions and creates a function that checks if the given value satisfies any of the conditions. This is useful for flexible condition checking or alternative validation.

typescript
import { overSome } from 'es-toolkit/compat';

// Check if value is string or number
const isStringOrNumber = overSome([value => typeof value === 'string', value => typeof value === 'number']);

isStringOrNumber('hello'); // => true
isStringOrNumber(42); // => true
isStringOrNumber(true); // => false

// Check if any of multiple conditions are satisfied
const hasValidProperty = overSome([
  obj => obj.name && obj.name.length > 0,
  obj => obj.email && obj.email.includes('@'),
  obj => obj.phone && obj.phone.length >= 10,
]);

hasValidProperty({ name: 'John' }); // => true
hasValidProperty({ email: '[email protected]' }); // => true
hasValidProperty({ phone: '1234567890' }); // => true
hasValidProperty({ age: 30 }); // => false

You can also check object properties.

typescript
import { overSome } from 'es-toolkit/compat';

// Check if any condition matches
const matchesAnyCondition = overSome([
  'isActive', // Check if isActive property is truthy
  { role: 'admin' }, // Check if role is 'admin'
  ['status', 'vip'], // Check if status is 'vip'
]);

matchesAnyCondition({ isActive: true }); // => true
matchesAnyCondition({ role: 'admin' }); // => true
matchesAnyCondition({ status: 'vip' }); // => true
matchesAnyCondition({ role: 'user', status: 'normal' }); // => false

Parameters

  • ...predicates (Array<Function | string | object | Array>): The predicate functions to check. Can be functions, property names, objects, or property-value pairs.

Returns

((...args: any[]) => boolean): Returns a function that returns true if any condition is satisfied, false if none are satisfied.