UNPKG

rivo

Version:

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

15 lines (11 loc) • 649 B
import type { Args, GenericFn, GenericResolver } from "../HKT"; import type { None, Option, Some } from "../Option"; export type TryGet<K extends PropertyKey, O extends object> = K extends keyof O ? Some<O[K]> : None; interface Resolver extends GenericResolver<[PropertyKey, object], Option<unknown>> { on1_: ([k]: Args<this>) => [[object], Option<unknown>]; on_1: ([, o]: Args<this>) => [[PropertyKey], Option<(typeof o)[keyof typeof o]>]; on11: ([k, o]: Args<this>) => [[], Option<(typeof o)[keyof typeof o]>]; } export default interface TryGetFn extends GenericFn<Resolver> { def: ([k, o]: Args<this>) => TryGet<typeof k, typeof o>; }