Skip to content
GitHub

DeepReadonly

type alias in meocord/interface Since 4.1.0

type DeepReadonly<T> = T extends readonly unknown[]
  ? { readonly [K in keyof T]: DeepReadonly<T[K]> }
  : T extends ThemeLeaf
    ? T
    : { readonly [K in keyof T]: DeepReadonly<T[K]> }

T with every property readonly, at every depth; an array becomes a readonly one of readonly elements.

It is the shape of the theme a call reads, which no handler can change.

See also