clean-jsdoc-theme TypeDoc APIv0.0.0

DeepReadonly

DeepReadonly<T> = T extends (infer R)[] ? ReadonlyArray<DeepReadonly<R>> : T extends object ? { readonly [P in keyof T]: DeepReadonly<T[P]> } : T

Source: common.ts:124

Deep readonly - makes all nested properties readonly

Type Parameters

  • T — The base type

Example

CODE
interface State {
  user: { name: string }
  items: string[]
}

const state: DeepReadonly<State> = { user: { name: 'Alice' }, items: [] }
// state.user.name = 'Bob' // Error!