chocolog
Version:
A highlighted android-style logger
19 lines (18 loc) • 743 B
TypeScript
/**
* 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>;