Skip to main content
Практика завдань

Утилітний тип awaited у TypeScript

Awaited — це утилітний тип у TypeScript, введений у версії 4.5, який витягує значення з проміса. Якщо функція або змінна повертає Promise<T>, тоді Awaited<T> поверне T.


Синтаксис

typescript
Awaited<T>
  • T — тип, який може бути промісом або значенням.
  • Якщо T є промісом (Promise<U>), тоді Awaited<T> повертає тип U.
  • Якщо T не є промісом, тоді Awaited<T> повертає T без змін.

Приклад використання

Приклад 1. Витягування значення з проміса

typescript
async function getData(): Promise<number> { return 42; } type DataType = Awaited<ReturnType<typeof getData>>; // DataType → number

У цьому прикладі:

  • Функція fetchData повертає Promise<number>.
  • ReturnType<typeof fetchData> витягує тип повернення функції, тобто Promise<number>.
  • Awaited<Promise<number>> розгортає проміс, повертаючи тип number.

Приклад 2. Робота з вкладеними промісами

typescript
type NestedPromise = Promise<Promise<string>>; type Result = Awaited<NestedPromise>; // Result → string
  • Якщо є кілька промісів, Awaited розгортає їх до фінального значення.

Чому використовувати Awaited?

  1. Спрощення роботи з асинхронними функціями

Awaited дозволяє явно вказувати тип результату, отриманого після очікування проміса, спрощуючи типізацію та зменшуючи дублювання. 2. Рекурсивне витягування типів

При роботі з вкладеними промісами Awaited автоматично "розгортає" вкладені типи, повертаючи фінальне значення. 3. Підтримка асинхронних утиліт

Awaited корисний при створенні загальних утиліт для асинхронного коду, де важливо знати точний тип даних після розв'язання проміса.


Обмеження

  • Якщо тип T не є промісом, Awaited просто повертає T без змін.
  • У випадку складних умовних типів або загальних функцій може знадобитися більш ретельний опис типу для коректного виведення.

Підсумок

Awaited — це потужний утилітний тип, який дозволяє автоматично витягувати типи значень з промісів. Він особливо корисний для асинхронного програмування в TypeScript, забезпечуючи точну типізацію повернених даних та спрощуючи роботу з вкладеними промісами.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.

Дочитали статтю?
Практика завдань