JS Built-ins
TypeScriptintermediate

Type Guard β€” isPositiveNumber

πŸ“– Usage Example
function isPositiveNumber(x: unknown): x is number {
  return typeof x === 'number' && x > 0
}
isPositiveNumber(5)    // β†’ true
isPositiveNumber(-1)   // β†’ false

Combining a typeof check with a value constraint creates a refined numeric type guard.

Type Guards: Combined Conditions

Challenge: Implement isPositiveNumber(x: unknown): x is number β€” true only if x is a finite, positive number (not NaN, not Infinity, not zero).

isPositiveNumber(5)        // β†’ true
isPositiveNumber(-1)       // β†’ false
isPositiveNumber(0)        // β†’ false
isPositiveNumber(Infinity) // β†’ false
πŸ’‘ Hints (1)
  • β€’ typeof check + Number.isFinite + x > 0.