Как правильно типизировать асинхронные функции и `Promise` в TypeScript?
async function f(): Promise<R>— всегда возвращаетPromise<R>returnвнутри async автоматически оборачивается вPromise.resolve- Поддерживается
PromiseLike<T>— для любых thenable-объектов - Ошибки не типизируются: catch(e) — тип
unknown(сuseUnknownInCatchVariables) Awaited<T>— рекурсивное разворачивание PromisePromise.allвозвращает кортеж типов:Promise<[A, B, C]>