Indexed access type - kdaisho/Blog GitHub Wiki

The basics

type Invalid = {
  status: number
  message: string
}

type FormError<T> = { [k: string]: T } // <- index signature

const formError: FormError<Invalid> = {}

formError.name.message = 'Name must be at least two characters'
formError.name.status = 400

formError.password.message = 'Password must be at least eight characters'
formError.password.status = 400
⚠️ **GitHub.com Fallback** ⚠️