gunshi / combinators / merge
Function: merge()
Call Signature
ts
function merge<A, B>(a, b): Omit<A, keyof B> & B;Experimental
Compose multiple Args schemas into one.
On key conflicts the later schema wins (last-write-wins).
Type Parameters
| Type Parameter | Description |
|---|---|
A extends Args | First schema type. |
B extends Args | Second schema type. |
Parameters
| Parameter | Type | Description |
|---|---|---|
a | A | First schema. |
b | B | Second schema. |
Returns
Omit<A, keyof B> & B
A merged schema containing all fields.
Example
ts
const common = args({ verbose: boolean() })
const network = args({ host: required(string()), port: withDefault(integer(), 8080) })
const schema = merge(common, network)Call Signature
ts
function merge<A, B, C>(
a,
b,
c): Omit<Omit<A, keyof B | keyof C> & Omit<B, keyof C>, never> & C;Experimental
Compose multiple Args schemas into one.
Type Parameters
| Type Parameter |
|---|
A extends Args |
B extends Args |
C extends Args |
Parameters
| Parameter | Type | Description |
|---|---|---|
a | A | First schema. |
b | B | Second schema. |
c | C | Third schema. |
Returns
Omit<Omit<A, keyof B | keyof C> & Omit<B, keyof C>, never> & C
A merged schema containing all fields.
Call Signature
ts
function merge<A, B, C, D>(
a,
b,
c,
d): Omit<A,
| keyof D
| Exclude<keyof C, keyof D>
| Exclude<keyof B, keyof D | Exclude<keyof C, keyof D>>> & Omit<B, keyof D | Exclude<keyof C, keyof D>> & Omit<C, keyof D> & D;Experimental
Compose multiple Args schemas into one.
Type Parameters
| Type Parameter |
|---|
A extends Args |
B extends Args |
C extends Args |
D extends Args |
Parameters
| Parameter | Type | Description |
|---|---|---|
a | A | First schema. |
b | B | Second schema. |
c | C | Third schema. |
d | D | Fourth schema. |
Returns
Omit<A, | keyof D | Exclude<keyof C, keyof D> | Exclude<keyof B, keyof D | Exclude<keyof C, keyof D>>> & Omit<B, keyof D | Exclude<keyof C, keyof D>> & Omit<C, keyof D> & D
A merged schema containing all fields.
Call Signature
ts
function merge<T>(...schemas): MergeArgs<T>;Experimental
Compose multiple Args schemas into one.
Type Parameters
| Type Parameter |
|---|
T extends Args[] |
Parameters
| Parameter | Type | Description |
|---|---|---|
...schemas | T | The schemas to merge. |
Returns
MergeArgs<T>
A merged schema containing all fields.
