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가 되면 채점이 기대한 문자열이 아닐 수 있음).
체크리스트
- 반환이
Promise<T>인가? await누락으로 Promise 객체를 그대로 쓰진 않았나?- 채점
solve는 동기인가?
연습
연습장에서 Promise<number>를 반환하는 함수와 async 버전을 나란히 작성해 보세요.
한 줄
> async 반환은 Promise<T>. 채점 solve는 보통 동기.
관련 문제로 바로 이어서 연습하면 읽기가 남습니다. 태그 링크를 활용하세요.
한 줄 더: 짧게 읽고, 바로 한 문제.
타입 오류 읽는 법
Promise<number>에 string을 return하면 에디터가 바로 알려 줍니다.
연습장에서도 타입을 켜 두면 채점 전에 실수를 줄일 수 있습니다.
더 깊게
읽은 뒤 연습장에서 예제 코드를 한 번 타이핑해 보세요. 눈으로만 보면 하루 뒤 사라집니다.
관련 원리 카드와 문제 태그로 바로 이어서 풀면, 문법·패턴이 한 묶음으로 남습니다.
막히면 30분 규칙: 입력을 로그로 확인 → 기대/실제 한 줄 비교 → 그래도 안 되면 배우기 레슨으로 잠시 복귀.