Optional schema interface.

interface OptionalSchema<
    TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,
    TDefault extends Default<TWrapped, undefined>,
> {
    "~run": (
        dataset: UnknownDataset,
        config: Config<BaseIssue<unknown>>,
    ) => OutputDataset<
        InferOptionalOutput<TWrapped, TDefault>,
        InferIssue<TWrapped>,
    >;
    "~standard": StandardProps<
        undefined
        | InferInput<TWrapped>,
        InferOptionalOutput<TWrapped, TDefault>,
    >;
    "~types"?: {
        input: undefined | InferInput<TWrapped>;
        issue: InferIssue;
        output: InferOptionalOutput;
    };
    async: false;
    default: TDefault;
    expects: `(${TWrapped["expects"]} | undefined)`;
    kind: "schema";
    reference: {
        <
            const TWrapped extends
                BaseSchema<unknown, unknown, BaseIssue<unknown>>,
        >(
            wrapped: TWrapped,
        ): OptionalSchema<TWrapped, undefined>;
        <
            const TWrapped extends
                BaseSchema<unknown, unknown, BaseIssue<unknown>>,
            const TDefault extends unknown,
        >(
            wrapped: TWrapped,
            default_: TDefault,
        ): OptionalSchema<TWrapped, TDefault>;
    };
    type: "optional";
    wrapped: TWrapped;
}

Type Parameters

Hierarchy (View Summary)

Properties

"~run": (
    dataset: UnknownDataset,
    config: Config<BaseIssue<unknown>>,
) => OutputDataset<
    InferOptionalOutput<TWrapped, TDefault>,
    InferIssue<TWrapped>,
>

Parses unknown input values.

Type declaration

"~standard": StandardProps<
    undefined
    | InferInput<TWrapped>,
    InferOptionalOutput<TWrapped, TDefault>,
>

The Standard Schema properties.

"~types"?: {
    input: undefined | InferInput<TWrapped>;
    issue: InferIssue;
    output: InferOptionalOutput;
}

The input, output and issue type.

async: false

Whether it's async.

default: TDefault

The default value.

expects: `(${TWrapped["expects"]} | undefined)`

The expected property.

kind: "schema"

The object kind.

reference: {
    <
        const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,
    >(
        wrapped: TWrapped,
    ): OptionalSchema<TWrapped, undefined>;
    <
        const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,
        const TDefault extends unknown,
    >(
        wrapped: TWrapped,
        default_: TDefault,
    ): OptionalSchema<TWrapped, TDefault>;
}

The schema reference.

Type declaration

type: "optional"

The schema type.

wrapped: TWrapped

The wrapped schema.