deepFreeze<T extends object, TReadonly extends boolean = true>( obj: T, options?: { readonlyType: TReadonly },): TReadonly extends true ? Readonly< { [K in string | number | symbol]: T[K] extends object ? Readonly< { [K in string | number | symbol]: any[any][K] extends object ? Readonly< { [K in string | number | symbol]: (...)
[(...)
] extends object ? Readonly<(...)
> : (...)
[(...)
] }, > : any[any][K] }, > : T[K] }, > : T Type Parameters
- T extends object
- TReadonly extends boolean = true
Parameters
- obj: T
Optional
options: { readonlyType: TReadonly }
Returns TReadonly extends true
? Readonly<
{
[K in string
| number
| symbol]: T[K] extends object
? Readonly<
{
[K in string
| number
| symbol]: any[any][K] extends object
? Readonly<
{
[K in string
| number
| symbol]: (...)[(...)] extends object
? Readonly<(...)>
: (...)[(...)]
},
>
: any[any][K]
},
>
: T[K]
},
>
: T