Skip to main content
Deno 2 is finally here 🎉️
Learn more
Module

x/valibot/src/index.ts>SchemaWithPick

The modular and type safe schema library for validating structural data 🤖
Extremely Popular
Latest
type alias SchemaWithPick
import { type SchemaWithPick } from "https://deno.land/x/valibot@v1.0.0-beta.1-i18n/src/index.ts";

Schema with pick type.

Type Parameters

TSchema extends Schema
TKeys extends ObjectKeys<TSchema>
definition: TSchema extends ObjectSchema<infer TEntries, ErrorMessage<ObjectIssue> | undefined> | StrictObjectSchema<infer TEntries, ErrorMessage<StrictObjectIssue> | undefined> ? Omit<TSchema, "entries" | "~types" | "~validate"> & { readonly entries: Pick<TEntries, TKeys[number]>; readonly ~types?: { readonly input: InferObjectInput<Pick<TEntries, TKeys[number]>>; readonly output: InferObjectOutput<Pick<TEntries, TKeys[number]>>; readonly issue: Extract<InferIssue<TSchema>, { type: TSchema["type"]; }> | InferObjectIssue<Pick<TEntries, TKeys[number]>>; } | undefined; readonly ~validate: (dataset: UnknownDataset, config?: Config<BaseIssue<unknown>>) => OutputDataset<InferObjectOutput<Pick<TEntries, TKeys[number]>>, Extract<InferIssue<TSchema>, { type: TSchema["type"]; }> | InferObjectIssue<Pick<TEntries, TKeys[number]>>>; } : TSchema extends ObjectSchemaAsync<infer TEntries, ErrorMessage<ObjectIssue> | undefined> | StrictObjectSchemaAsync<infer TEntries, ErrorMessage<StrictObjectIssue> | undefined> ? Omit<TSchema, "entries" | "~types" | "~validate"> & { readonly entries: Pick<TEntries, TKeys[number]>; readonly ~types?: { readonly input: InferObjectInput<Pick<TEntries, TKeys[number]>>; readonly output: InferObjectOutput<Pick<TEntries, TKeys[number]>>; readonly issue: Extract<InferIssue<TSchema>, { type: TSchema["type"]; }> | InferObjectIssue<Pick<TEntries, TKeys[number]>>; } | undefined; readonly ~validate: (dataset: UnknownDataset, config?: Config<BaseIssue<unknown>>) => Promise<OutputDataset<InferObjectOutput<Pick<TEntries, TKeys[number]>>, Extract<InferIssue<TSchema>, { type: TSchema["type"]; }> | InferObjectIssue<Pick<TEntries, TKeys[number]>>>>; } : TSchema extends LooseObjectSchema<infer TEntries, ErrorMessage<LooseObjectIssue> | undefined> ? Omit<TSchema, "entries" | "~types" | "~validate"> & { readonly entries: Pick<TEntries, TKeys[number]>; readonly ~types?: { readonly input: InferObjectInput<Pick<TEntries, TKeys[number]>> & { [key: string]: unknown; }; readonly output: InferObjectOutput<Pick<TEntries, TKeys[number]>> & { [key: string]: unknown; }; readonly issue: Extract<InferIssue<TSchema>, { type: TSchema["type"]; }> | InferObjectIssue<Pick<TEntries, TKeys[number]>>; } | undefined; readonly ~validate: (dataset: UnknownDataset, config?: Config<BaseIssue<unknown>>) => OutputDataset<InferObjectOutput<Pick<TEntries, TKeys[number]>> & { [key: string]: unknown; }, Extract<InferIssue<TSchema>, { type: TSchema["type"]; }> | InferObjectIssue<Pick<TEntries, TKeys[number]>>>; } : TSchema extends LooseObjectSchemaAsync<infer TEntries, ErrorMessage<LooseObjectIssue> | undefined> ? Omit<TSchema, "entries" | "~types" | "~validate"> & { readonly entries: Pick<TEntries, TKeys[number]>; readonly ~types?: { readonly input: InferObjectInput<Pick<TEntries, TKeys[number]>> & { [key: string]: unknown; }; readonly output: InferObjectOutput<Pick<TEntries, TKeys[number]>> & { [key: string]: unknown; }; readonly issue: Extract<InferIssue<TSchema>, { type: TSchema["type"]; }> | InferObjectIssue<Pick<TEntries, TKeys[number]>>; } | undefined; readonly ~validate: (dataset: UnknownDataset, config?: Config<BaseIssue<unknown>>) => Promise<OutputDataset<InferObjectOutput<Pick<TEntries, TKeys[number]>> & { [key: string]: unknown; }, Extract<InferIssue<TSchema>, { type: TSchema["type"]; }> | InferObjectIssue<Pick<TEntries, TKeys[number]>>>>; } : TSchema extends ObjectWithRestSchema<infer TEntries, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> ? Omit<TSchema, "entries" | "~types" | "~validate"> & { readonly entries: Pick<TEntries, TKeys[number]>; readonly ~types?: { readonly input: InferObjectInput<Pick<TEntries, TKeys[number]>> & { [key: string]: InferInput<TSchema["rest"]>; }; readonly output: InferObjectOutput<Pick<TEntries, TKeys[number]>> & { [key: string]: InferOutput<TSchema["rest"]>; }; readonly issue: Extract<InferIssue<TSchema>, { type: TSchema["type"]; }> | InferObjectIssue<Pick<TEntries, TKeys[number]>> | InferIssue<TSchema["rest"]>; } | undefined; readonly ~validate: (dataset: UnknownDataset, config?: Config<BaseIssue<unknown>>) => OutputDataset<InferObjectOutput<Pick<TEntries, TKeys[number]>> & { [key: string]: InferOutput<TSchema["rest"]>; }, Extract<InferIssue<TSchema>, { type: TSchema["type"]; }> | InferObjectIssue<Pick<TEntries, TKeys[number]>> | InferIssue<TSchema["rest"]>>; } : TSchema extends ObjectWithRestSchemaAsync<infer TEntries, BaseSchema<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> ? Omit<TSchema, "entries" | "~types" | "~validate"> & { readonly entries: Pick<TEntries, TKeys[number]>; readonly ~types?: { readonly input: InferObjectInput<Pick<TEntries, TKeys[number]>> & { [key: string]: InferInput<TSchema["rest"]>; }; readonly output: InferObjectOutput<Pick<TEntries, TKeys[number]>> & { [key: string]: InferOutput<TSchema["rest"]>; }; readonly issue: Extract<InferIssue<TSchema>, { type: TSchema["type"]; }> | InferObjectIssue<Pick<TEntries, TKeys[number]>> | InferIssue<TSchema["rest"]>; } | undefined; readonly ~validate: (dataset: UnknownDataset, config?: Config<BaseIssue<unknown>>) => Promise<OutputDataset<InferObjectOutput<Pick<TEntries, TKeys[number]>> & { [key: string]: InferOutput<TSchema["rest"]>; }, Extract<InferIssue<TSchema>, { type: TSchema["type"]; }> | InferObjectIssue<Pick<TEntries, TKeys[number]>> | InferIssue<TSchema["rest"]>>>; } : never