Type alias JTDDataDef<S, D>

JTDDataDef<S, D>: (S extends {
        ref: string;
    }
    ? D extends {
            [K in S["ref"]]: infer V
        }
        ? JTDDataDef<V, D>
        : never
    : S extends {
            type: NumberType;
        }
        ? number
        : S extends {
                type: "boolean";
            }
            ? boolean
            : S extends {
                    type: "string";
                }
                ? string
                : S extends {
                        type: "timestamp";
                    }
                    ? string | Date
                    : S extends {
                            enum: readonly (...)[];
                        }
                        ? string extends E
                            ? never
                            : [(...)] extends [(...)]
                                ? E
                                : never
                        : S extends {
                                elements: infer E;
                            }
                            ? JTDDataDef<(...), (...)>[]
                            : S extends {
                                    additionalProperties?: ...;
                                    optionalProperties?: ...;
                                    properties: ...;
                                }
                                ? (...) & (...) & (...)
                                : (...) extends (...)
                                    ? (...)
                                    : (...)) | (S extends {
        nullable: true;
    }
    ? null
    : never)

Type Parameters

  • S
  • D extends Record<string, unknown>