DeepReadonly: {
    readonly [K in keyof T]: T[K] extends | undefined
    | null
    | boolean
    | number
    | string
    | symbol
    | bigint
    | Function
        ? T[K]
        : T[K] extends (infer V)[]
            ? ReadonlyArray<DeepReadonly<V>>
            : T[K] extends Map<infer K, infer V>
                ? ReadonlyMap<DeepReadonly<K>, DeepReadonly<V>>
                : T[K] extends Set<infer V>
                    ? ReadonlySet<DeepReadonly<V>>
                    : DeepReadonly<T[K]>
}

Make all properties in T recursively readonly.

Type Parameters

  • T