UNPKG

rivo

Version:

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

17 lines (13 loc) • 672 B
import type { Args, GenericFn, GenericResolver } from "../HKT"; export type Get<K extends keyof O, O extends object> = K extends keyof O ? O[K] : never; interface Resolver extends GenericResolver<[PropertyKey, object], object> { on1_: ([k]: Args<this>) => [[{ readonly [P in typeof k]: any }], unknown]; on_1: ([, o]: Args<this>) => [[keyof typeof o], (typeof o)[keyof typeof o]]; on11: ([k, o]: Args<this>) => [ [], typeof k extends infer K extends keyof typeof o ? (typeof o)[K] : never, ]; } export default interface GetFn extends GenericFn<Resolver> { def: ([k, o]: Args<this>) => typeof k extends keyof typeof o ? (typeof o)[typeof k] : never; }