Skip to content

gunshi / combinators / extend

Function: extend()

ts
function extend<T, U>(base, overrides): Omit<T, keyof U> & U;

Experimental

Extend a schema by overriding or adding fields.

Equivalent to merge(base, overrides) but communicates the intent of intentional overrides rather than general composition.

Type Parameters

Type ParameterDescription
T extends ArgsBase schema type.
U extends ArgsOverrides schema type.

Parameters

ParameterTypeDescription
baseTThe base schema to extend.
overridesUFields to override or add.

Returns

Omit<T, keyof U> & U

A new schema with overrides applied.

Example

ts
const base = args({ port: withDefault(integer(), 8080) })
const strict = extend(base, { port: required(integer({ min: 1, max: 65535 })) })

Released under the MIT License.