Type Alias JsonCompatible<T>

JsonCompatible<T>: unknown extends T
    ? never
    : T extends bigint | symbol | Fun
        ? never
        : T extends
                | boolean
                | number
                | string
                | null
                | undefined
                | {
                    toJSON(): any;
                }
            ? T
            : T extends readonly any[]
                ? readonly JsonCompatible<T[number]>[]
                : {
                    [P in keyof T]: JsonCompatible<T[P]>
                }

Enforces that the type represents data that can be serialized via JSON.stringify.

Type Parameters

  • T