DeepReadonly<T>: 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]>
}>

Type Parameters

  • T