JavaScript Type Builder with Static Resolution for TypeScript

Hierarchy (view full)

Constructors

Methods

  • [Json] Creates an Any type

    Parameters

    Returns TAny

  • [JavaScript] Creates a Generic Argument Type

    Type Parameters

    • Index extends number

    Parameters

    Returns TArgument<Index>

  • [JavaScript] Creates a AsyncIterator type

    Type Parameters

    Parameters

    Returns TAsyncIterator<Type>

  • [JavaScript] Constructs a type by recursively unwrapping Promise types

    Type Parameters

    Parameters

    Returns TAwaited<Type>

  • [JavaScript] Creates a BigInt type

    Parameters

    Returns TBigInt

  • [Json] Creates a Boolean type

    Parameters

    Returns TBoolean

  • [Json] Intrinsic function to Capitalize LiteralString types

    Type Parameters

    Parameters

    Returns TCapitalize<T>

  • [Json] Creates a Composite object type

    Type Parameters

    Parameters

    Returns TObject<Evaluate<TCompositeProperties<T, TCompositeKeys<T, []>, {}>>>

  • [JavaScript] Creates a readonly const type from the given value.

    Type Parameters

    • T

    Parameters

    Returns TConst<T>

  • [JavaScript] Extracts the ConstructorParameters from the given Constructor type

    Type Parameters

    Parameters

    Returns TConstructorParameters<Type>

  • [JavaScript] Creates a Date type

    Parameters

    Returns TDate

  • [Json] Creates a Enum type

    Type Parameters

    Parameters

    Returns TEnum<T>

  • [JavaScript] Extracts the InstanceType from the given Constructor type

    Type Parameters

    Parameters

    Returns Type extends TConstructor<_Parameters, InstanceType>
        ? InstanceType
        : TNever

  • [Json] Creates an Integer type

    Parameters

    Returns TInteger

  • [JavaScript] Creates an Iterator type

    Type Parameters

    Parameters

    Returns TIterator<Type>

  • [Json] Creates a Never type

    Parameters

    Returns TNever

  • [Json] Creates a Not type

    Type Parameters

    Parameters

    Returns TNot<T>

  • [Json] Creates a Null type

    Parameters

    Returns TNull

  • [Json] Creates a Number type

    Parameters

    Returns TNumber

  • [Json] Creates an Object type

    Type Parameters

    Parameters

    Returns TObject<T>

  • [Json] Constructs a type whose keys are picked from the given type

    Type Parameters

    • Type extends TSchema
    • Key extends PropertyKey[]

    Parameters

    Returns TOmit<Type, Key>

  • [Json] Constructs a type whose keys are picked from the given type

    Type Parameters

    Parameters

    Returns TOmit<Type, Key>

  • [JavaScript] Extracts the Parameters from the given Function type

    Type Parameters

    Parameters

    Returns TParameters<Type>

  • [Json] Constructs a type whose keys are picked from the given type

    Type Parameters

    • Type extends TSchema
    • Key extends PropertyKey[]

    Parameters

    Returns TPick<Type, Key>

  • [Json] Constructs a type whose keys are picked from the given type

    Type Parameters

    Parameters

    Returns TPick<Type, Key>

  • [JavaScript] Creates a Promise type

    Type Parameters

    Parameters

    Returns TPromise<Type>

  • [Json] Creates a Recursive type

    Type Parameters

    Parameters

    Returns TRecursive<T>

  • [Json] Creates a Ref type.

    Type Parameters

    • Ref extends string

    Parameters

    Returns TRef<Ref>

  • Type Parameters

    Parameters

    Returns TRefUnsafe<Type>

    [Json] Creates a Ref type. This signature was deprecated in 0.34.0 where Ref requires callers to pass a string value for the reference (and not a schema).

    To adhere to the 0.34.0 signature, Ref implementations should be updated to the following.

    // pre-0.34.0

    const T = Type.String({ $id: 'T' })

    const R = Type.Ref(T)

    should be changed to the following

    // post-0.34.0

    const T = Type.String({ $id: 'T' })

    const R = Type.Unsafe<Static<typeof T>>(Type.Ref('T'))

    You can also create a generic function to replicate the pre-0.34.0 signature if required

    const LegacyRef = <T extends TSchema>(schema: T) => Type.Unsafe<Static<T>>(Type.Ref(schema.$id!))
    
  • [JavaScript] Creates a RegExp type

    Parameters

    Returns TRegExp

  • [JavaScript] Creates a RegExp type

    Parameters

    Returns TRegExp

  • [Json] Extracts interior Rest elements from Tuple, Intersect and Union types

    Type Parameters

    Parameters

    Returns TRest<Type>

  • [JavaScript] Extracts the ReturnType from the given Function type

    Type Parameters

    Parameters

    Returns Type extends TFunction<_Parameters, ReturnType>
        ? ReturnType
        : TNever

  • [Json] Creates a String type

    Parameters

    Returns TString

  • [JavaScript] Creates a Symbol type

    Parameters

    Returns TSymbol

  • [JavaScript] Creates a Uint8Array type

    Parameters

    Returns TUint8Array

  • [JavaScript] Creates a Undefined type

    Parameters

    Returns TUndefined

  • [Json] Creates an Unknown type

    Parameters

    Returns TUnknown

  • [Json] Creates a Unsafe type that will infers as the generic argument T

    Type Parameters

    • T

    Parameters

    Returns TUnsafe<T>

  • [Json] Intrinsic function to Uppercase LiteralString types

    Type Parameters

    Parameters

    Returns TUppercase<T>

  • [JavaScript] Creates a Void type

    Parameters

    Returns TVoid