T

OptionArgs

A handler's args, derived from its options: a required option is V, an optional one V | undefined.

type OptionArgs<O> = { [K in keyof O]: O[K] extends OptionSpec<OptionKind, infer R, infer V> ? R extends true ? V : V | undefined : never }