재귀 조건부 타입 + Promise.allSettled 실제 사례로 설명
사이드 프로젝트로 TypeScript 폼 유효성 검사 라이브러리를 만들 때 제네릭 타입을 처음 깊이 써봤습니다. 중첩 객체의 경로를 타입으로 표현하려다 재귀 조건부 타입을 만나게 됐고, 처음엔 컴파일 에러만 수십 개 나왔습니다. tsc --noEmit으로 타입 오류만 격리해 확인하고, TypeScript Playground에서 작은 케이스부터 직접 실험하며 구조를 잡았습니다. 비동기 쪽에서는 팀 프로젝트에서 `Promise.all` 내부 일부가 실패해도 전체가 중단되는 문제가 생겼는데, Promise.allSettled로 전환해 실패 결과를 별도로 처리하는 로직을 추가했습니다. 원인을 모를 때는 코드를 줄여 재현 가능한 최소 케이스를 만드는 습관이 JS/TS 심화 문제에서 가장 효과적이었습니다.
타입 에러는 런타임 버그보다 먼저 잡을 수 있는 기회라는 걸 그때부터 체감합니다.