I have read this, but it is unclear what would be the difference between \'never\' and \'void\' type?
The return type of Promise.reject() is Promise, meaning "it is never resolved".
Promise.reject()
Promise
So if a function returns Promise, I think it will return only errors. On the other hand, Promise might be resolved without value.