<A extends ReadonlyArray<unknown>, B>(f: (...a: A) => B): (
...a: A
) => B | undefinedConverts a throwing function into one that returns successful results
unchanged and returns undefined when the function throws.
When to use
Use to adapt exception-throwing functions when undefined is the absence
value you want to return for failures.
Gotchas
Thrown values are discarded. If the wrapped function can successfully return
undefined, that success is indistinguishable from a thrown failure.
export const const liftThrowable: <
A extends ReadonlyArray<unknown>,
B
>(
f: (...a: A) => B
) => (...a: A) => B | undefined
Converts a throwing function into one that returns successful results
unchanged and returns undefined when the function throws.
When to use
Use to adapt exception-throwing functions when undefined is the absence
value you want to return for failures.
Gotchas
Thrown values are discarded. If the wrapped function can successfully return
undefined, that success is indistinguishable from a thrown failure.
liftThrowable = <function (type parameter) A in <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => B): (...a: A) => B | undefinedA extends interface ReadonlyArray<T>ReadonlyArray<unknown>, function (type parameter) B in <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => B): (...a: A) => B | undefinedB>(
f: (...a: A) => Bf: (...a: A extends ReadonlyArray<unknown>a: function (type parameter) A in <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => B): (...a: A) => B | undefinedA) => function (type parameter) B in <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => B): (...a: A) => B | undefinedB
): (...a: A extends ReadonlyArray<unknown>a: function (type parameter) A in <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => B): (...a: A) => B | undefinedA) => function (type parameter) B in <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => B): (...a: A) => B | undefinedB | undefined =>
(...a: A extends ReadonlyArray<unknown>a) => {
try {
return f: (...a: A) => Bf(...a: A extends ReadonlyArray<unknown>a)
} catch {
return var undefinedundefined
}
}