UNPKG

chocolog

Version:

A highlighted android-style logger

19 lines (18 loc) 743 B
/** * Deep-Readonly type (recursive) * * From: https://stackoverflow.com/questions/41879327/deepreadonly-object-typescript/49670389 */ export declare type DeepReadonly<T> = T extends (infer R)[] ? DeepReadonlyArray<R> : T extends Function ? T : T extends object ? DeepReadonlyObject<T> : T; export declare type Immute<T> = DeepReadonly<T>; export interface DeepReadonlyArray<T> extends ReadonlyArray<DeepReadonly<T>> { } export declare type DeepReadonlyObject<T> = { readonly [P in keyof T]: DeepReadonly<T[P]>; }; /** * Make deep-readonly object * * From: https://stackoverflow.com/questions/41299642/how-to-use-javascript-proxy-for-nested-objects */ export declare function asReadonly<T extends object>(obj: T): DeepReadonly<T>;