문법 · TS · intermediate

Promise와 async 함수 타입

비동기 반환 타입 Promise<T>와 async/await를 타입과 함께 씁니다.

배우기 · TypeScript 문법 · 14분 · 6/7 · TypeScript · async

이 트랙 목차 (7)
  1. 1. 타입 주석·유니온·좁히기
  2. 2. interface · type · 제네릭 맛보기
  3. 3. 좁히기·가드: typeof, in, 판별 유니온
  4. 4. 배열·제네릭 함수 스케치
  5. 5. optional과 nullish: ?. ?? !
  6. 6. Promise와 async 함수 타입
  7. 7. 튜플·readonly 감각

Promise<T>

function load(): Promise<string> {
  return Promise.resolve('ok');
}

성공 값의 타입을 T로 적습니다. 실패는 reject이며, 타입만으로는 에러 종류를 강제하기 어렵습니다.

async 함수

async function load(): Promise<number> {
  return 1; // 자동으로 Promise로 감쌈
}

async 함수의 반환 타입은 항상 Promise<...>입니다. number만 적으면 오류가 납니다.

await와 좁히기

const s = await load(); // string

await 뒤에는 resolved 타입이 옵니다. null 가능하면 가드를 두세요.

연습 범위

이 사이트 문제 채점은 대부분 동기 solve입니다.
타입 연습·연습장 실험용으로 async를 다루고, 채점 함수에 불필요하게 async를 붙이지 마세요 (반환이 Promise가 되면 채점이 기대한 문자열이 아닐 수 있음).

체크리스트

  1. 반환이 Promise<T>인가?
  2. await 누락으로 Promise 객체를 그대로 쓰진 않았나?
  3. 채점 solve는 동기인가?

연습

연습장에서 Promise<number>를 반환하는 함수와 async 버전을 나란히 작성해 보세요.

한 줄

> async 반환은 Promise<T>. 채점 solve는 보통 동기.

관련 문제로 바로 이어서 연습하면 읽기가 남습니다. 태그 링크를 활용하세요.

한 줄 더: 짧게 읽고, 바로 한 문제.

타입 오류 읽는 법

Promise<number>string을 return하면 에디터가 바로 알려 줍니다.
연습장에서도 타입을 켜 두면 채점 전에 실수를 줄일 수 있습니다.

더 깊게

읽은 뒤 연습장에서 예제 코드를 한 번 타이핑해 보세요. 눈으로만 보면 하루 뒤 사라집니다.

관련 원리 카드와 문제 태그로 바로 이어서 풀면, 문법·패턴이 한 묶음으로 남습니다.

막히면 30분 규칙: 입력을 로그로 확인 → 기대/실제 한 줄 비교 → 그래도 안 되면 배우기 레슨으로 잠시 복귀.

관련 짧은 원리

관련 문제