UNPKG

385 BTypeScriptView Raw
1export = deepFreeze;
2
3declare function deepFreeze<T>(a: T[]): ReadonlyArray<deepFreeze.DeepReadonly<T>>;
4declare function deepFreeze<T extends Function>(f: T): T;
5declare function deepFreeze<T>(o: T): deepFreeze.DeepReadonly<T>;
6
7declare namespace deepFreeze {
8 type DeepReadonly<T> = T extends (...args: any) => any ? T
9 : { readonly [P in keyof T]: DeepReadonly<T[P]> };
10}