Skip to content

validateNegativeNumber

Validates a value as a negative number (less than zero).

This helper never throws and never mutates input. Returns a structured ValidationResult for composable validation pipelines.

Signature

function validateNegativeNumber(
    value: unknown,
    field: string
): ValidationResult<number>

Parameters

Name Type Description
value unknown The value to validate.
field string The field name for error reporting.

Returns

  • { ok: true; value: number }: If valid
  • { ok: false; field: string; message: string }: If invalid.

Examples

validateNegativeNumber(-0.1, 'rate');     // → { ok: true, value: -0.1 }
validateNegativeNumber(-42, 'count');     // → { ok: true, value: -42 }
validateNegativeNumber(0, 'zero');        // → { ok: false, field: 'zero', message: 'Value must be a negative number' }
validateNegativeNumber(1, 'positive');    // → { ok: false, field: 'positive', message: 'Value must be a negative number' }
validateNegativeNumber("5", 'stringVal'); // → { ok: false, field: 'stringVal', message: 'Value must be a negative number' }

Notes

  • Only number primitives less than zero are valid.
  • Fractional numbers are allowed.
  • Zero, positive numbers, strings, NaN, Infinity, and non-numeric types fail.
  • Use normalizeNegativeNumber if input may be a string before validation.