Hyperlinkv0.8.0-beta.28

Number

Number.parseconsteffect/Number.ts:739
(s: string): Option.Option<number>

Parses a number from a string safely using the Number() function. The following special string values are supported: "NaN", "Infinity", "-Infinity".

When to use

Use to parse numeric text without throwing on invalid input.

Example (Parsing numbers from strings)

import { Number } from "effect"

Number.parse("42") // Option.some(42)
Number.parse("3.14") // Option.some(3.14)
Number.parse("NaN") // Option.some(NaN)
Number.parse("Infinity") // Option.some(Infinity)
Number.parse("-Infinity") // Option.some(-Infinity)
Number.parse("not a number") // Option.none()
constructorsNumber
Source effect/Number.ts:73916 lines
export const parse = (s: string): Option.Option<number> => {
  if (s === "NaN") {
    return Option.some(NaN)
  }
  if (s === "Infinity") {
    return Option.some(Infinity)
  }
  if (s === "-Infinity") {
    return Option.some(-Infinity)
  }
  if (s.trim() === "") {
    return Option.none()
  }
  const n = Number(s)
  return Number.isNaN(n) ? Option.none() : Option.some(n)
}