• Creates an object decoder from an object of key/decoder pairs. Object decoder checks that the input value is an object that has key/value pairs valid for the specified decoders.

    Example

    // Creates a decoder that will successfully decode input value: { a: 'aaa', b: 123 }.
    const decoder = D.object({ a: D.string, b: D.optional(D.number) });

    Type Parameters

    • T extends Record<PropertyKey, Decoder<unknown, unknown>>

    • O extends InferDecoderObjectType<T> | string & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | number & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | false & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | true & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | symbol & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | Date & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | URL & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | Set<unknown> & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | WeakSet<object> & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | Map<unknown, unknown> & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | WeakMap<object, unknown> & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | Uint8Array & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | Uint16Array & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | Uint32Array & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | BigUint64Array & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | Int8Array & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | Int16Array & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | Int32Array & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | BigInt64Array & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | Float32Array & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | Float64Array & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | Buffer & Omit<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>> & Partial<Pick<{ [ K in string | number | symbol]: _Infer<T[K]> }, OptionalKeys<{ [ K in string | number | symbol]: _Infer<T[K]> }>>> | { [ K in string | number | symbol]: FlattenType<InferDecoderObjectType<T>[K]> }

    Parameters

    • o: T

    Returns Decoder<O>

Generated using TypeDoc