Skip to content

Latest commit

 

History

History
42 lines (30 loc) · 901 Bytes

File metadata and controls

42 lines (30 loc) · 901 Bytes

typelab / utils / ParseInt

type ParseInt<T> = T extends number ? `${T}` extends `${infer Int extends number}.${number}` ? Int : T : T extends "-0" | "-0n" | `${"-" | ""}.${number}` ? 0 : T extends `${infer U extends number}` ? number extends U ? T extends `${infer U extends number}.${number | ""}` ? U : never : `${U}` extends `${infer Int extends number}.${number}` ? Int : U : T extends `${infer U extends bigint}n` ? `${U}` extends `${infer V extends number}` ? V : never : T extends bigint ? ParseInt<`${T}`> : never;

Parses a string or number type into a number.

Type Parameters

Type Parameter Description

T

The type to parse.

Returns

The parsed number type.

Example

type Int = ParseInt<'11'>; // 11