augment-vir - v32.2.2
    Preparing search index...

    Type Alias ReadonlyDeep<T>

    ReadonlyDeep: T extends BuiltIns
        ? T
        : T extends new (...arguments_: any[]) => unknown
            ? T
            : T extends (...arguments_: any[]) => unknown
                ? {} extends ReadonlyObjectDeep<T>
                    ? T
                    : HasMultipleCallSignatures<T> extends true
                        ? T
                        : (...arguments_: Parameters<T>) => ReturnType<T> & ReadonlyObjectDeep<
                            T,
                        >
                : T extends Readonly<ReadonlyMap<infer KeyType, infer ValueType>>
                    ? ReadonlyMapDeep<KeyType, ValueType>
                    : T extends Readonly<ReadonlySet<infer ItemType>>
                        ? ReadonlySetDeep<ItemType>
                        : T extends readonly []
                        | readonly [...(...)[]]
                            ? readonly []
                            : T extends readonly [infer U, ...(infer V)]
                                ? readonly [ReadonlyDeep<U>, ...ReadonlyDeep<(...)>]
                                : T extends readonly [...(...), infer V]
                                    ? readonly [...(...), ReadonlyDeep<(...)>]
                                    : T extends ReadonlyArray<infer ItemType>
                                        ? ReadonlyArray<ReadonlyDeep<(...)>>
                                        : T extends object ? ReadonlyObjectDeep<(...)> : unknown

    Create a deeply immutable version of another type.

    Copied from the ReadonlyDeep type in the type-fest package so that this package's public types do not depend on type-fest (see the note in type-checks.ts).

    Type Parameters

    • T