DeepReadOnlyObject<T>: T extends (infer U)[]
    ? DeepReadOnlyObject<U>[]
    : T extends Record<any, any>
        ? {
            readonly [k in keyof T]: DeepReadOnlyObject<T[k]>
        }
        : T

Type Parameters

  • T