TypeScriptTypy narzędziowe
Awaited<Type>
Pobiera typ wartości, którą da await na obietnicy.
Przykład
#TypeScript
async function loadCourses() {
return [
{ title: 'HTML i CSS', modules: 11 },
{ title: 'Python', modules: 12 }
]
}
type Courses = Awaited<ReturnType<typeof loadCourses>>
// type Courses = { title: string; modules: number }[]
const courses: Courses = await loadCourses()
console.log(courses.map((c) => c.title))Wynik
['HTML i CSS', 'Python']
Definicja i zastosowanie
#Awaited<Type> rozpakowuje obietnice tak, jak robi to await: Awaited<Promise<string>> to string. Radzi sobie też z obietnicami zagnieżdżonymi, rozpakowując je do końca.
Najczęściej używa się go z funkcjami asynchronicznymi: Awaited<ReturnType<typeof fetchCourses>> to typ danych, które faktycznie otrzymasz po await fetchCourses().
Na typach, które nie są obietnicami, Awaited nic nie zmienia, więc można go bezpiecznie stosować w typach generycznych.
Składnia
#Składnia
type Wartosc = Awaited<TypObietnicy>Parametry typu
#Type
dowolny typ
Typ do rozpakowania z obietnic.
Dobre praktyki
#- Zapamiętaj wzór
Awaited<ReturnType<typeof fn>>dla funkcji asynchronicznych. - Typ
Promise.allna tablicy obietnic też jest liczony przezAwaiteddla każdego elementu.
Powiązane hasła
#Widzisz błąd albo brakuje przykładu? Napisz do nas.