Frozen<T>: T & {
    readonly [K in keyof T]: T[K] extends Frozen<infer I>
        ? I
        : T[K] extends (() => unknown)
            ? T[K]
            : T[K] extends object
                ? Frozen<T[K]>
                : T[K]
}

The frozen type makes T type readonly recursively.

Type Parameters

  • T

Generated using TypeDoc