9 lines
264 B
TypeScript
9 lines
264 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]>;
|
|
};
|