UNPKG

rivo

Version:

🤖 The ultimate library you need for composable type-level programming in TypeScript, powered by HKT.

23 lines (20 loc) • 486 B
import type { Arg0, Fn } from "../HKT"; import type { AssertNum } from "../helpers"; /** * Get the absolute value of a number. * * Sig: `(n: number) => number` */ export type Abs<N extends number> = AssertNum< number extends N ? number : `${N}` extends `-${infer T extends number}` ? T : N >; /** * [Fn] Get the absolute value of a number. * * Sig: `(n: number) => number` */ export default interface AbsFn extends Fn<[number], number> { def: () => Abs<Arg0<this>>; }