whenRights
whenRights<
Xs
,T
>(xs
,f
):ArgRights
<Xs
> extendsnever
[] ?Left
<ArgLefts
<Xs
>[number
]> :ArgLefts
<Xs
>[number
] extendsnever
[] ?T
:Left
<ArgLefts
<Xs
>[number
]> |T
whenRights
takes an array of Either
s and a function that takes the right
s of the Either
s as
arguments and returns a Left
if any of the Either
s are Left
s or the result of the function if
all of the Either
s are Right
s.
Example
whenRights([{ right: 'foo' }, { right: 'bar' }], ([x0, x1]) => ({right: `${x0}${x1}`}))// => { right: "foobar"}
whenRights([{ left: 'bar' }, { right: 'fooz' }], ([x0, x1]) => ({right: `${x0}${x1}`}))// => { left: "bar" }
Type Parameters
• Xs extends Either
<unknown
, unknown
>[]
• T extends Either
<unknown
, unknown
>
The mapped type.
Parameters
xs
readonly [Xs
]
The either values.
f
(rs
) => T
The map function.
Returns
ArgRights
<Xs
> extends never
[] ? Left
<ArgLefts
<Xs
>[number
]> : ArgLefts
<Xs
>[number
] extends never
[] ? T
: Left
<ArgLefts
<Xs
>[number
]> | T
The mapped value if right.