When you make a function async it implicitly always returns a Promise.
Firstly, when using an async function is there actually any difference between returning
Promise.reject(new Error(...)) vs throw new Error(...)
Should you use one over the other for reasons other than consistency in the code base?
Secondly, what type does it return?
Based on VS Code Promise.reject(new Error(...)) returns a Promise<Never> does throw new Error(...) return the same thing?
Thirdly, should you change the functions type signature to Promise in the case it can return a rejected Promise? Is there a rejected Promise type? Does this even make sense?
Thanks.