"`strict: true` 가 meta-flag. 7개 체크가 하나로 켜짐."
Family
Tsconfig.json 의 "strict": true 가 7개 별개 strictness flag 동시에 켜:
noImplicitAnystrictNullChecksstrictFunctionTypesstrictBindCallApplystrictPropertyInitializationnoImplicitThisuseUnknownInCatchVariables
각각 단독으로도 의미 있음; 다 함께 켜는 게 2026 의 새 TypeScript 프로젝트 default.
왜 다 함께
7 flag 가 다른 종류의 latent 타입 약점 잡음. 하나만 켜고 다른 거 안 켜면 gap 남음. 권장 자세가 첫날부터 `strict: true` — 모든 flag, 예외 없음.
Full strict 못 가는 프로젝트 엔 (legacy 코드, 점진적 migration), 개별 flag 한 번에 하나씩 opt out 가능. 일반 방향이 항상 덜 strict 가 아니라 더 strict 로 가야.
strict 가 끝 아냐
3개 추가 flag 가 `strict: true` 도 놓치는 거 잡음:
noUncheckedIndexedAccess— index 접근을T | undefined로 타입exactOptionalPropertyTypes— 빠진 거와 명시 undefined 구별noImplicitReturns— 함수가 모든 code path 에 뭔가 반환해야
새 프로젝트엔 이것들도 켜. `@tsconfig/strictest` base 가 다 포함.
최대-strict tsconfig 가 옳은 시작점. 모든 flag 가 자기 몫 하고; 잡는 모든 버그가 나중 디버깅 세션 절약. Strict 로 시작, strict 유지.