pick

Creates an object schema that contains only the selected keys of an existing schema.

// Object schema with an optional pipe
const Schema = pick<TSchema, TKeys>(schema, keys, pipe);

// Object schema with an optional message and pipe
const Schema = pick<TSchema, TKeys>(schema, keys, message, pipe);

// Object schema with rest and optional pipe
const Schema = pick<TSchema, TKeys, TRest>(schema, keys, rest, pipe);

// Object schema with rest and optional message and pipe
const Schema = pick<TSchema, TKeys, TRest>(schema, keys, rest, message, pipe);

Generics

Parameters

  • schema TSchema
  • keys TKey
  • rest TRest
  • message ErrorMessage | undefined
  • pipe Pipe<ObjectOutput<Pick<TSchema['entries'], TKeys[number]>, TRest>> | undefined

Explanation

pick creates a new object schema that containing only the selected keys of the given object schema. It is similar to TypeScript's Pick utility type.

Note that rest, message and pipe of the passed schema are completely ignored and must be added again.

Returns

  • Schema ObjectSchema<Pick<TSchema['entries'], TKeys[number]>, TRest>

Examples

The following examples show how pick can be used.

Pick specific keys

Schema that contains only the selected keys of an existing schema.

const ObjectSchema = object({
  key1: string(),
  key2: number(),
  key3: boolean(),
});

const PickSchema = pick(ObjectSchema, ['key1', 'key2']);

The following APIs can be combined with pick.

Schemas

Methods

Transformations

Validations

Contributors

Thanks to all the contributors who helped make this page better!

  • GitHub profile picture of fabian-hiller

Partners

Thanks to our partners who support the project ideally and financially.

Sponsors

Thanks to our GitHub sponsors who support the project financially.

  • GitHub profile picture of dailydotdev
  • GitHub profile picture of ivan-mihalic
  • GitHub profile picture of KATT
  • GitHub profile picture of osdiab
  • GitHub profile picture of Thanaen
  • GitHub profile picture of hyunbinseo
  • GitHub profile picture of caegdeveloper