UNPKG

type-plus

Version:
23 lines (22 loc) 435 B
/** * Converts a number or bigint `N` to negative. * If `N` is already negative, it returns itself. * * @example * ```ts * ToNegative<5> // -5 * ToNegative<0> // 0 * ToNegative<-5> // -5 * ``` */ export type ToNegative<N extends number | bigint> = N extends number ? N extends 0 ? 0 : `-${N}` extends `${infer W extends number}` ? W : N : N extends 0n ? 0n : `-${N}` extends `${infer W extends bigint}` ? W : N