Если вы хотите перебросить, вы можете выбросить все, что захотите, потому что обычно отклоненное значение не набирается должным образом (то есть any
).
lib.es5.d.ts:
interface Promise<T> {
then<TResult1 = T, TResult2 = never>(
onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null,
// See `reason` below
onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null
): Promise<TResult1 | TResult2>;
Можно утверждать, что Promise
должно иметь два параметра общего типа ...
Если вы перехватываете и возвращаете значение, это должен быть User
объект, как указано. Попадание в 404 звучит для меня скорее как отклонение, но я не знаком с этой библиотекой, поэтому, если она не обработает отклонение должным образом, вам, возможно, придется вернуть значение.
Возможно, лучше изменить тип возвращаемого значения на User | null
, если вы не можете отклонить его, тогда вы можете вернуть null
в случае сбоя.