Type Utils
    Preparing search index...

    Type Alias GetSchema<T>

    GetSchema: 0 extends 1 & T
        ? FluentSchema<any>
        : unknown extends T
            ? FluentSchema<any>
            : [void] extends [T]
                ? FluentSchema<any>
                : [never] extends [T]
                    ? never
                    : [string] extends [T]
                        ? T extends string ? FluentSchema<string, StringSchemaRules> : never
                        : T extends string
                            ? FluentSchema<string, StringSchemaRules, [...(...)[]]>
                            : [number] extends [T]
                                ? T extends number
                                    ? FluentSchema<number, NumberSchemaRules>
                                    : never
                                : T extends number
                                    ? FluentSchema<number, NumberSchemaRules, [...(...)]>
                                    : T extends bigint
                                        ? FluentSchema<bigint, NumberSchemaRules>
                                        : T extends boolean
                                            ? FluentSchema<(...)>
                                            : (...) extends (...) ? (...) : (...)

    Maps a TypeScript type T to the FluentSchema result type you'd get from calling the corresponding schema builder function.

    Type Parameters

    • T
    GetSchema<any> → FluentSchema<any>
    GetSchema<unknown> → FluentSchema<any>
    GetSchema<void> → FluentSchema<any>
    GetSchema<never> → never
    GetSchema<string> → FluentSchema<string, StringSchemaRules>
    GetSchema<'hello'> → FluentSchema<string, StringSchemaRules, [...(keyof StringSchemaRules)[]]>
    GetSchema<number> → FluentSchema<number, NumberSchemaRules>
    GetSchema<bigint> → FluentSchema<bigint, NumberSchemaRules>
    GetSchema<boolean> → FluentSchema<boolean>
    GetSchema<null> → FluentSchema<null>
    GetSchema<undefined> → FluentSchema<undefined>
    GetSchema<symbol> → FluentSchema<symbol>
    GetSchema<string[]> → FluentSchema<string[], ArraySchemaRules>
    GetSchema<readonly string[]> → FluentSchema<readonly string[], ArraySchemaRules>
    GetSchema<[string, number]> → FluentSchema<[string, number]>
    GetSchema<Record<string, number>> → FluentSchema<Record<string, number>, RecordSchemaRules>
    GetSchema<Record<number, string>> → FluentSchema<Record<number, string>, RecordSchemaRules>
    GetSchema<Record<symbol, boolean>> → FluentSchema<Record<symbol, boolean>, RecordSchemaRules>
    GetSchema<{ foo: string }> → FluentSchema<Sanitize<{ foo: string }>>
    GetSchema<{ foo?: string }> → FluentSchema<Sanitize<{ foo?: string }>>
    GetSchema<string | number> → FluentSchema<string | number>