Skip to content

Latest commit

 

History

History
44 lines (32 loc) · 1012 Bytes

File metadata and controls

44 lines (32 loc) · 1012 Bytes

typelab / utils / Increment

type Increment<N> = N extends number ? number extends N ? number : `${N}` extends `-${infer WholeNumber}` ? WholeNumber extends `0.${infer Fraction}` ? ParseFloat<`0.${Fraction}`> : ParseFloatNegative<_Decrement<WholeNumber>> : ParseFloat<_Increment<`${N}`>> : N extends bigint ? bigint extends N ? bigint : `${N}` extends `-${infer WholeNumber}` ? ParseBigIntNegative<_Decrement<WholeNumber>> : ParseBigInt<_Increment<`${N}`>> : never;

Increments a given number or bigint by 1.

Type Parameters

Type Parameter Description

N extends number | bigint

The number or bigint to be incremented.

Returns

The incremented number or bigint.

Example

type IncrementNumber = Increment<5>; // 6
type IncrementBigInt = Increment<10n>; // 11n
type IncrementNegative = Increment<-3.14>; // -2.14