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 Eithers and a function that takes the left values of the Eithers
and returns a value. If any of the Eithers are Rights, 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.