Проверяет знание утилитарного типа Awaited, который извлекает тип разрешённого значения из Promise, что важно при работе с асинхронным кодом в TypeScript.
В TypeScript утилитарный тип Awaited<T> предназначен для извлечения типа значения, которое возвращает промис. Он был добавлен в версии 4.5 и решает задачу, с которой разработчики часто сталкивались при работе с асинхронными функциями: как получить тип результата, не выполняя саму функцию.
Если у вас есть тип Promise<string>, то Awaited<Promise<string>> вернёт string. Тип рекурсивно разворачивает вложенные промисы: Awaited<Promise<Promise<number>>> также даст number. Это соответствует поведению оператора await в рантайме.
async function fetchUser(): Promise<{ id: number; name: string }> {
return { id: 1, name: 'Alice' };
}
type User = Awaited<ReturnType<typeof fetchUser>>;
// User = { id: number; name: string }
// Без Awaited пришлось бы писать вручную:
type UserManual = ReturnType<typeof fetchUser> extends Promise<infer U> ? U : never;
Promise.all или других комбинаторов.Итог: используйте Awaited, когда нужно получить тип значения, возвращаемого промисом, особенно в связке с ReturnType для асинхронных функций — это делает код чище и безопаснее.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
JavaScript
TypeScript
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию