UNPKG

rivo

Version:

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

23 lines (19 loc) • 562 B
import type { List } from "."; import type { Args, GenericFn, GenericResolver } from "../HKT"; /** * Convert a {@link List} to a union type. * * Sig: `<T>(xs: List<T>) => T` */ export type ToUnion<TS extends List> = TS[number]; interface Resolver extends GenericResolver<[List], unknown> { on1: ([xs]: Args<this>) => [[], (typeof xs)[number]]; } /** * [Fn] Convert a {@link List} to a union type. * * Sig: `<T>(xs: List<T>) => T` */ export default interface ToUnionFn extends GenericFn<Resolver> { def: ([xs]: Args<this>) => ToUnion<typeof xs>; }