Почему ошибка при загрузке клиента aurelia указана как любая, а не как Ответ
Я режу зубы на Aurelia, клиенте aurelia-fetch и Typescript. Я замечаю в машинописи, когда я настраиваю функцию catch
.catch(error => //do something error)
error
определяется машинопись как any
но когда я проверяю это в отладчике, я вижу, что это типа Response
Почему тип any
и не Response
?
1 ответ
Обратите внимание, что тип возвращаемого значения fetch
методHttpClient
является Promise<Response>
:
fetch(input: Request | string, init?: RequestInit): Promise<Response>;
Итак catch
вы имеете в виду прибывает из Promise
на самом деле. Определение типа catch
происходит от TypeScript (lib.d.ts
) на самом деле:
/**
* Attaches a callback for only the rejection of the Promise.
* @param onrejected The callback to execute when the Promise is rejected.
* @returns A Promise for the completion of the callback.
*/
catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;
И общее определение с any
как тип для reason
вполне оправдано, так как охватывает все случаи.
Надеюсь это поможет.