중요한 tsconfig 옵션을 용도별로 정리했습니다. 타입 검사 강화, 언어 타깃과 모듈 설정, 출력 내용 제어, import 경로 매핑, 멀티 프로젝트 빌드 구성, 나머지 검사 조정.
tsconfig는 컴파일러에 어떤 파일을 포함할지, 얼마나 엄격할지 알려줍니다. 대부분의 작업은 두 옵션이 담당합니다. target은 JavaScript 생성 수준을 정하고, strict는 안전 검사를 한 번에 켭니다. 아래는 동작을 바꾸는 옵션들이며, 기본 켜짐 플래그는 표시해 두었습니다. 설정은 베이스에서 파생시킨 뒤, 다른 부분만 재정의하세요.
참고 표 · 55 항목
tsconfig 옵션Explained
55 of 55 rows
엄격함
마스터 스위치: strictNullChecks, noImplicitAny 등 여러 옵션을 한 번에 켠다.
타입을 추론할 수 없는 매개변수와 변수에서 에러 (꺼 두면 any가 됨).
null과 undefined를 모든 타입에 할당할 수 없게 된다. 명시적으로 지정해야 한다.
함수 매개변수를 반공변으로 검사한다. 불안전한 콜백 매개변수 타입을 잡아낸다.
bind, call, apply를 함수가 선언한 매개변수 기준으로 타입 검사한다.
클래스 프로퍼티가 초기값 없이 생성자에서도 할당되지 않으면 에러.
선택적 프로퍼티 { p?: T }가 명시적인 undefined 할당을 더는 받지 않는다.
기본 클래스 멤버를 가리는 멤버에 override 키워드를 요구한다.
선언만 되고 한 번도 읽히지 않는 지역 변수에서 에러.
선언만 되고 한 번도 읽히지 않는 함수 매개변수에서 에러.
아무 효과가 없는 표현식 문에서 에러.
인덱스 시그니처 키에는 점 표기법 접근을 금지한다. 대괄호를 사용한다(obj["key"]).
한 코드 경로는 값을 반환하는데 다른 경로는 반환하지 않을 때 에러.
break 없이 switch case가 다음 case로 떨어질 때 에러.
언어와 모듈
JavaScript 생성 수준(예: ES2022). 최신 target일수록 downleveling이 줄어든다.
사용할 수 있는 내장 API(예: ES2022, DOM, DOM.Iterable).
출력되는 모듈 시스템(예: ESNext, CommonJS, NodeNext).
Node의 실제 규칙을 따른다. 각 파일은 가장 가까운 package.json에서 CJS 또는 ESM을 선택하고, 상대 import에는 확장자가 필요하다.
import 경로를 해석하는 방식(예: bundler, node, nodenext).
파일이 모듈로 간주되는 조건: auto(import/export 존재 여부), legacy, force(항상).
CommonJS 모듈에서 default-import 방식을 허용한다(대부분의 설정에서 기본 true).