기본 패턴
json
{
"compilerOptions": {
"strict": true
}
}설명
strict는 여러 강한 검사 옵션을 한 번에 켜 주는 대표 설정입니다.- 이 옵션이 켜지면
noImplicitAny,strictNullChecks같은 검사들이 함께 활성화되어, 느슨한 코드를 더 빨리 문제로 드러냅니다. - 특히
strictNullChecks는null과undefined를 무시하지 않고 별도 타입으로 취급해, 값이 없을 수 있는 경우를 더 정직하게 다루게 만듭니다. - 처음엔 오류가 많이 늘어나는 것처럼 보여도, 장기적으로는 "있을 거라고 생각했는데 없었다"는 종류의 버그를 줄이는 데 매우 효과적입니다.
- 대형 프로젝트일수록 strict를 기본으로 두고, 정말 필요한 예외만 국소적으로 푸는 편이 관리에 유리합니다.
짧은 예제
ts
const users = [{ name: "Ada" }];
const found = users.find((user) => user.name === "Grace");
// strictNullChecks가 켜져 있으면
// found는 { name: string } | undefined빠른 정리
| 옵션 | 효과 |
|---|---|
strict | 강한 타입 검사 묶음을 활성화 |
noImplicitAny | 암시적 any를 오류로 처리 |
strictNullChecks | null/undefined를 별도 타입으로 취급 |
| 장점 | 런타임에서 늦게 터질 버그를 앞당겨 발견 |
| 비용 | 초기에 오류 수가 늘어날 수 있음 |
주의할 점
strict 오류를 없애기 위해 as any를 남발하면, 결국 strict를 켠 의미가 약해집니다.
불편하더라도 값이 정말 없는지, 타입을 더 좁힐 수 있는지부터 먼저 보는 편이 좋습니다.
참고 링크
2 sources