rivo
Version:
🤖 The ultimate library you need for composable type-level programming in TypeScript, powered by HKT.
25 lines (22 loc) • 580 B
TypeScript
import type { Args, Fn } from "../HKT";
import type { AssertStr, Eq } from "../helpers";
/**
* Convert a boolean to a string.
*
* Sig: `(b: boolean) => string`
*/
export type ToStr<B extends boolean> = AssertStr<
[B] extends [never] ? never
: Eq<B, true> extends true ? "true"
: Eq<B, false> extends true ? "false"
: Eq<B, boolean> extends true ? "boolean"
: string
>;
/**
* [Fn] Convert a boolean to a string.
*
* Sig: `(b: boolean) => string`
*/
export default interface ToStrFn extends Fn<[boolean], string> {
def: ([b]: Args<this>) => ToStr<typeof b>;
}