UNPKG

hkt-toolbelt

Version:

Functional and composable type utilities

44 lines (43 loc) 1.08 kB
import { Kind, Type } from '..'; /** * `_$toNumber` is a type-level function that takes in a boolean `B` and returns * either `1` or `0`. * * @template {boolean} B - The boolean to convert to a number. * * @example * ```ts * type T0 = _$toNumber<true> // 1 * type T1 = _$toNumber<false> // 0 * ``` */ export type _$toNumber<B extends boolean> = B extends true ? 1 : 0; /** * `ToNumber` is a type-level function that takes in a boolean `B` and returns * either `1` or `0`. * * @template {boolean} B - The boolean to convert to a number. * * @example * ```ts * type T0 = $<Boolean.ToNumber, true> // 1 * type T1 = $<Boolean.ToNumber, false> // 0 * ``` */ export interface ToNumber extends Kind.Kind { f(x: Type._$cast<this[Kind._], boolean>): _$toNumber<typeof x>; } /** * Given a boolean, return either 1 or 0. * * @param {boolean} b - The boolean to convert. * * @example * ```ts * import { Boolean } from "hkt-toolbelt"; * * const result = Boolean.toNumber(true) * // ^? 1 * ``` */ export declare const toNumber: Kind._$reify<ToNumber>;