Strict Checks
strict 옵션은 버그 유형별 로드맵으로 켠다
strict를 기준점으로 두고 null, any, 분기 누락,
인덱스 접근처럼 실제 버그 유형별로 보조 옵션을 올립니다.
목표: 오류 수가 아니라 버그 종류를 줄이기
새 프로젝트는 처음부터 엄격하게, 기존 프로젝트는 단계별로 켭니다.
1
기반 강화
strict
암시적 any, null, this, 함수 타입 검사를 한 번에 올립니다.
2
값 누락 차단
strictNullChecks
null과 undefined를 명시적으로 처리하게 만듭니다.
3
암시적 경계 제거
noImplicitAny
타입이 새는 입구를 unknown 또는 명시 타입으로 바꿉니다.
4
분기 완성 확인
noImplicitReturns
일부 경로만 반환하는 함수를 빌드 전에 잡습니다.
5
접근 안전성 확대
noUncheckedIndexedAccess
배열과 맵 접근 결과에 undefined 가능성을 반영합니다.
null bug
값이 없는데 사용
strictNullChecks
런타임 cannot read 오류를 줄입니다.
any leak
타입 정보가 사라짐
noImplicitAny
입력 경계에서 타입을 명확히 합니다.
branch gap
반환 경로 누락
noImplicitReturns
함수 결과가 undefined로 새는 일을 막습니다.
dead code
정리되지 않은 코드
noUnusedLocals
불필요한 변수와 매개변수를 빨리 제거합니다.
index miss
없는 키 접근
noUncheckedIndexedAccess
인덱스 결과를 T | undefined로 다루게 합니다.
optional drift
옵셔널 의미 혼동
exactOptionalPropertyTypes
없는 속성과 undefined 값을 구분합니다.
new project
새 프로젝트
시작
strict: true를 기본값으로 둡니다.
추가
인덱스, 옵셔널, unused 계열을 도메인 위험도에 맞춰 더합니다.
existing project
기존 프로젝트
1차
오류가 적고 효과가 큰 null/return/unused부터 켭니다.
2차
any 경계를 좁힌 뒤 strict 전체 전환을 시도합니다.
3차
인덱스와 optional 정밀 옵션은 수정 패턴을 정한 뒤 적용합니다.