whenLefts
whenLefts<
Xs
,T
>(xs
,f
):ArgLefts
<Xs
> extendsnever
[] ?Right
<ArgRights
<Xs
>[number
]> :ArgRights
<Xs
>[number
] extendsnever
[] ?T
:Right
<ArgRights
<Xs
>[number
]> |T
whenLefts
takes an array of Either
s and a function that takes the left values of the Either
s
and returns a value. If any of the Either
s are Right
s, then the first Right
is returned.
Otherwise, the function is called with the left values and its return value is returned.
Example
whenLefts([{ left: 'foo' }, { left: 'bar' }], ([x0, x1]) => `${x0}${x1}`)// => "foobar"
whenLefts([{ right: 'bar' }, { left: 'fooz' }], ([x0, x1]) => `${x0}${x1}`)// => { right: "bar" }
Type Parameters
• Xs extends Either
<unknown
, unknown
>[]
• T
The mapped type.
Parameters
xs
readonly [Xs
]
The either values.
f
(rs
) => T
The map function.
Returns
ArgLefts
<Xs
> extends never
[] ? Right
<ArgRights
<Xs
>[number
]> : ArgRights
<Xs
>[number
] extends never
[] ? T
: Right
<ArgRights
<Xs
>[number
]> | T
The mapped value if right.