rivo
Version:
🤖 The ultimate library you need for composable type-level programming in TypeScript, powered by HKT.
19 lines (15 loc) • 541 B
TypeScript
import type { None, Option } from ".";
import type { Args, Fn } from "../HKT";
declare module "../typeclass/HKT" {
interface HKTRegistry {
Option: RegisterHKT<Option$$HKT$$Builder, Option$$HKT$$Extractor>;
}
}
export interface Option$$HKT$$Builder extends Fn<[unknown], Option<unknown>> {
def: ([x]: Args<this>) => Option<typeof x>;
}
export interface Option$$HKT$$Extractor extends Fn<[Option<unknown>], unknown> {
def: ([o]: Args<this>) => typeof o extends None ? never
: typeof o extends Option<infer T> ? T
: never;
}