0Pricing
TypeScript Academy · Lekcja

Promise<T> i typowanie async/await

Poznanie struktur Promise , adnotowanie funkcji async oraz bezpieczna praca z wartościami po await

Promise<T> i typowanie async/await to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 1 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej TypeScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs TypeScript Academy zawiera 3 lekcji w sumie.

Wprowadzenie

Cel: Czytać i pisać kod oparty na Promise<T>. Typować funkcje asynchroniczne, używać await do oczekiwania na wartości i zachowywać typy błędów.

Podstawy Promise

Promise<T> reprezentuje wartość, która będzie dostępna w przyszłości. Używaj Promise, gdy nie zostanie rozstrzygnięta żadna wartość.

function delay(ms: number): Promise<void> {
  return new Promise(resolve => setTimeout(resolve, ms));
}

const p: Promise<void> = delay(100);

p.then(() => console.log("done"));

Typowanie wartości zwracanej przez async

Funkcje async zawsze zwracają wartość typu Promise<U>. Ciało funkcji zwraca U, a TS automatycznie je opakowuje.

async function fetchNumber(): Promise<number> {
  await delay(10);
  return 42; // inferred as Promise<number>
}

fetchNumber().then(n => console.log(n.toFixed(0)));

Typowanie await

await rozpakowuje Promise i zwraca typ wewnętrzny (tutaj string), dzięki czemu otrzymujesz poprawne podpowiedzi IntelliSense.

async function readUserName(id: number): Promise<string> {
  await delay(5);
  return `user-${id}`;
}

async function main(): Promise<void> {
  const name = await readUserName(7); // name: string
  console.log(name.toUpperCase());
}

main();

Typowanie Promise.all

Promise.all zachowuje typy krotek; każdy element jest automatycznie oczekiwany do uzyskania jego typu wewnętrznego.

async function both() {
  const [n, s] = await Promise.all([
    fetchNumber(),
    readUserName(1),
  ]);
  console.log(n, s);
}

both();

Typowanie błędów

W bloku catch preferuj unknown. Zawężaj typ za pomocą instanceof Error (lub własnych sprawdzeń), zanim uzyskasz dostęp do pól.

async function safe() {
  try {
    await delay(1);
    throw new Error("boom");
  } catch (e: unknown) {
    if (e instanceof Error) {
      console.error("Handled:", e.message);
    } else {
      console.error("Unknown error", e);
    }
  }
}

safe();

Sprawdzenie typu zwracanego przez async

Szybkie sprawdzenie: Jaki jest typ zwracany przez funkcję async, która zwraca wartość typu U?

Podsumowanie

Podsumowanie: Promise<T> opakowuje wartości dostępne w przyszłości, funkcje async zwracają Promise<U>, await rozpakowuje typy, a błędy w bloku catch powinny początkowo mieć typ unknown.

Często zadawane pytania

Czy lekcja „Promise<T> i typowanie async/await” jest bezpłatna?

Tak — pełny tekst „Promise<T> i typowanie async/await” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu TypeScript Academy, przejdź na CoddyKit PRO. Kurs TypeScript Academy zawiera 3 lekcji w sumie.

Co nauczysz się w „Promise<T> i typowanie async/await”?

Poznanie struktur Promise , adnotowanie funkcji async oraz bezpieczna praca z wartościami po await Ćwiczysz TypeScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć TypeScript Academy?

Nie wymagamy żadnego doświadczenia. TypeScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 3.

Ile czasu zajmuje lekcja „Promise<T> i typowanie async/await”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji TypeScript Academy?

Tak. Każda lekcja TypeScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Promise i typowanie async/await
  2. Typowanie błędów (unknown) i zawężanie w catch
  3. Typy wzorców współbieżności (all/settled/race)
← Powrót do TypeScript Academy