11 lines
277 B
TypeScript
11 lines
277 B
TypeScript
/**
|
|
* A deeply readonly type.
|
|
* @template T - The type to make deeply readonly.
|
|
* @returns The deeply readonly type.
|
|
*/
|
|
export type DeeplyReadonly<T> = {
|
|
readonly [K in keyof T]:
|
|
T[K] extends (...args: never[]) => unknown
|
|
? T[K]
|
|
: DeeplyReadonly<T[K]>;
|
|
}; |