Skip to content
GitHub

ParamsOf

type alias in meocord/interface Since 4.1.0

type ParamsOf<P extends string> = {
  [
    S in PatternSpecs<P> as S['optional'] extends true ? never : S['name']
  ]: S['value']
} & {
  [
    S in PatternSpecs<P> as S['optional'] extends true ? S['name'] : never
  ]?: S['value']
}

The params a message pattern gives its handler, read from the pattern itself.

Use it to type a handler's params, or anything that receives them, from the pattern alone: ParamsOf<'ban {target:member} {days:int?}'> is { target: GuildMember } & { days?: number }. A handler's declared params are checked against it anyway; for what guards see, use ParamRefsOf.

See also