After I had used throw and catch throughout my whole typescript/node application at first, I stumbled over neverthrow(https://www.npmjs.com/package/neverthrow).
It took me to write my first, larger application and typescript, to realize what a big issue the missing ability to mark a function as throwing actually is.
neverthrow or other either based solutions seem just fine. For my non-Async functions I have already changed everything to neverthrow.
I don't really see the point, why I should bother to wrap all my async functions to return ResultAsync though. Any async function is marked as possibly throwing an error by nature(as they return a Promise), or am I wrong? Is there any point I missing and I should indeed change all async functions to use ResultAsync?