"tsc 가 한 명령어 아냐 — 여러 blade 가진 스위스 아미 나이프."
가장 많이 쓸 mode
tsc — 전체 타입 체크 + emit. Default. 가장 느린 mode; .js 출력 만듦.
tsc --noEmit — 타입 체크만. .js 출력 필요 없는 (다른 tool 이 만드니까) CI '컴파일 돼?' 체크에 사용. Full compile 보다 빠름.
tsc --watch — 계속 돌고, 파일 변경에 재체크. 빠른 incremental feedback 위해 개발 동안 사용. --noEmit 와 결합하면 지속 타입 체크.
tsc --incremental — 타입-체크 state 를 .tsbuildinfo 에 cache. 후속 실행이 바뀐 거만 재체크. 큰 프로젝트에 필수.
tsc -b / --build — project reference build mode. Multi-package monorepo build 조정. 다음 lesson 에서 다룸.
실제 프로젝트가 어떻게 쓰나
전형적 setup: CI 의 타입-전용 체크엔 tsc --noEmit --incremental, 실제 JS emit 엔 vite 또는 esbuild, 개발 IDE/터미널의 지속 feedback 엔 tsc --watch --noEmit. 분리가 의도적 — fast transpiler 가 build 하게 하고; tsc 가 타입-체크에 집중하게.
Modern 프로젝트에 emit 용
tsc 안 써. Vite, esbuild, swc, Bun, Deno 다 JavaScript 만드는 데 10-100x 더 빠름. 그것들 하게 둬. tsc 는 타입-체크만, 동등한 게 없어서.