Type Alias: ImmutableJson<T>

ImmutableJson<T> = JsonValue extends T ? JsonValue : T extends JsonPrimitive ? T : T extends (...arguments_) => unknown ? never : T extends readonly unknown[] ? { readonly [Key in keyof T]: ImmutableJson<T[Key]> } : T extends object ? { readonly [Key in keyof T]: ImmutableJson<T[Key]> } : never

The deeply readonly form of a JSON channel payload.

Type Parameters

T

T