TypeScript: Map 키와 Array 인덱스 검사하기
TypeScript에서 Map과 Array를 안전하게 사용하는 방법을 설명합니다.
주요 문제점: JavaScript에서는 map.has(key)
검사 후 map.get(key)
를 사용하고, 배열에서는 길이를 확인한 후 인덱스 접근을 하지만, TypeScript에서는 이러한 검사가 타입 추론에 반영되지 않아 여전히 undefined
가능성이 남습니다.
해결방법들:
Map의 경우:
- 비null 단언 연산자(
!
) 사용 .get()
으로 값을 가져온 후undefined
검사.has()
메서드 타입을 수정하여 타입 가드로 만들기
Array의 경우:
- 인덱스 접근 시
!
연산자 사용 undefined
검사 후 사용in
연산자로 인덱스 존재 확인- 커스텀
isLengthAtLeast()
함수로 길이 검사
권장사항: 복잡한 타입 해킹보다는 주류 해결책(non-null 단언, undefined 검사 등)을 사용하는 것이 코드 이식성 면에서 더 좋습니다.