strict는 출발점이지 모든 검사의 별칭은 아니다

묶음과 독립 옵션을 나누면 어떤 버그를 막는 스위치인지 선명해진다.

묶음 스위치

strict: true

noImplicitAny strictNullChecks strictFunctionTypes
필요에 따라 별도 설정

코드베이스 규칙과 접근 위험

noUnusedLocals noImplicitReturns noUncheckedIndexedAccess
strict 포함

매개변수 타입이 사라짐

noImplicitAny가 암시적 any를 오류로 바꾼다. 입력 경계에 타입 근거를 남김
strict 포함

nullable 값을 바로 사용

strictNullChecks가 사용 전 null 처리를 요구한다. 분기나 기본값으로 좁힘
별도 선택

없는 인덱스에 접근

noUncheckedIndexedAccess가 결과를 T | undefined로 본다. 접근 실패를 타입에 반영

적용 원칙 strict: true에서 시작하고, 별도 옵션은 실제 실패 패턴에 맞춰 더한다.