"tsc는 한 가지 명령이 아니라 목적별 날을 가진 도구 상자야."
가장 자주 쓰는 모드
tsc는 전체 타입 검사와 JavaScript 출력을 함께 하는 기본 모드야. tsc --noEmit은 출력 없이 타입만 검사하고, tsc --watch --noEmit은 개발 중 변경을 계속 다시 검사해.
tsc --incremental은 검사 상태를 .tsbuildinfo에 저장해 다음 실행에서 바뀐 부분만 다시 보므로 큰 프로젝트에 필수적이야. tsc -b는 다음 레슨에서 다룰 프로젝트 참조 빌드 모드야.
실제 프로젝트의 조합
CI에서는 tsc --noEmit --incremental로 타입을 검사하고, Vite나 esbuild가 실제 JavaScript를 만들어. 개발 중에는 tsc --watch --noEmit으로 연속 피드백을 얻어. 이 분리는 의도적이야. 빠른 변환기는 출력에, tsc는 대체할 수 없는 타입 검사에 집중해.
현대 프로젝트에서는 tsc를 출력기로 쓰지 마. Vite, esbuild, swc, Bun, Deno는 JavaScript 출력에서 10~100배 빠를 수 있어. 출력은 그 도구에 맡기고 tsc는 타입 검사에 써.