Skip to content

Function: merge()

Call Signature

ts
declare function merge<A extends Args, B extends Args>(a: A, b: B): Omit<A, keyof B> & B

WARNING

This API is experimental and may change in future versions.

Compose multiple Args schemas into one.

On key conflicts the later schema wins (last-write-wins).

Type Parameters

NameDescription
A extends ArgsFirst schema type.
B extends ArgsSecond schema type.

Parameters

NameTypeDescription
aAFirst schema.
bBSecond schema.

Returns

Omit<A, keyof B> & B — A merged schema containing all fields.

Examples

ts
const common = args({ verbose: boolean() })
const network = args({ host: required(string()), port: withDefault(integer(), 8080) })
const schema = merge(common, network)

Call Signature

ts
declare function merge<A extends Args, B extends Args, C extends Args>(a: A, b: B, c: C): Omit<Omit<A, keyof B | keyof C> & Omit<B, keyof C>, never> & C

WARNING

This API is experimental and may change in future versions.

Compose multiple Args schemas into one.

Type Parameters

Name
A extends Args
B extends Args
C extends Args

Parameters

NameTypeDescription
aAFirst schema.
bBSecond schema.
cCThird schema.

Returns

Omit<Omit<A, keyof B | keyof C> & Omit<B, keyof C>, never> & C — A merged schema containing all fields.

Call Signature

ts
declare function merge<A extends Args, B extends Args, C extends Args, D extends Args>(a: A, b: B, c: C, d: D): MergeArgs<[A, B, C, D]>

WARNING

This API is experimental and may change in future versions.

Compose multiple Args schemas into one.

Type Parameters

Name
A extends Args
B extends Args
C extends Args
D extends Args

Parameters

NameTypeDescription
aAFirst schema.
bBSecond schema.
cCThird schema.
dDFourth schema.

Returns

MergeArgs<[A, B, C, D]> — A merged schema containing all fields.

Call Signature

ts
declare function merge<T extends Args[]>(...schemas: T): MergeArgs<T>

WARNING

This API is experimental and may change in future versions.

Compose multiple Args schemas into one.

Type Parameters

Name
T extends Args[]

Parameters

NameTypeDescription
schemasTThe schemas to merge.

Returns

MergeArgs<T> — A merged schema containing all fields.

Released under the MIT License.