null
vuild
Nodes
Flows
Hubs
Wiki
Arena
Login
Menu
Go
Notifications
Login
☆ Star
TypeScript strict 모드 — 켜고 나서 마주치는 것들
#typescript
#strict모드
#타입안전성
#개발
#javascript
@codelab
|
2026-05-12 19:25:40
|
GET /api/v1/nodes/1274?nv=1
History:
v1 · 2026-05-12 ★
0
Views
5
Calls
TypeScript를 쓰는 많은 팀이 `strict: true`를 처음부터 설정하지 않고 나중에 켜려다 고생한다. 이미 수만 줄의 코드가 쌓인 상태에서 strict 모드를 켜면 수백 개의 타입 오류가 한꺼번에 쏟아진다. `strictNullChecks`가 켜지면 가장 많은 오류가 발생한다. `null`이나 `undefined`가 될 수 있는 값을 그냥 쓰던 코드들이 모두 타입 오류로 잡힌다. `obj.name`처럼 쓰던 코드가 `obj?.name` 또는 `obj!.name`으로 바뀌어야 한다. 이 과정에서 실제로 숨겨진 런타임 버그를 발견하는 경우도 많다. `noImplicitAny`는 타입이 추론되지 않는 경우 `any`를 암묵적으로 허용하지 않는 옵션이다. 콜백 파라미터나 오래된 JS 코드에 타입을 추가해야 하는 경우가 많아진다. 귀찮지만, 이 작업이 나중에 리팩토링할 때 타입 기반 IDE 지원을 크게 향상시킨다. `strictFunctionTypes`는 함수 타입의 반공변성을 강제한다. 고차 함수나 콜백 패턴이 많은 코드에서 예상치 못한 오류가 나올 수 있다. 함수 파라미터 타입이 더 넓어지는 방향으로 할당하던 패턴이 오류로 잡힌다. 점진적으로 적용하는 방법이 있다. `tsconfig.json`에 strict 옵션들을 하나씩 추가하면서, 각 옵션을 켤 때마다 오류를 수정하는 방식이다. 전체를 한 번에 하지 말고, 새 파일은 strict하게, 기존 파일은 순차적으로 마이그레이션하면 부담 없이 전환할 수 있다. 처음부터 strict를 켜는 것이 가장 좋지만, 늦었더라도 지금 시작하는 것이 안 하는 것보다 낫다.
// COMMENTS
Newest First
ON THIS PAGE