TypeScript: 맵 키와 배열 인덱스 확인 | Axel Rauschmayer


TypeScript: Map 키와 Array 인덱스 검사하기

TypeScript에서 Map과 Array를 안전하게 사용하는 방법을 설명합니다.

주요 문제점: JavaScript에서는 map.has(key) 검사 후 map.get(key)를 사용하고, 배열에서는 길이를 확인한 후 인덱스 접근을 하지만, TypeScript에서는 이러한 검사가 타입 추론에 반영되지 않아 여전히 undefined 가능성이 남습니다.

해결방법들:

Map의 경우:

  1. 비null 단언 연산자(!) 사용
  2. .get()으로 값을 가져온 후 undefined 검사
  3. .has() 메서드 타입을 수정하여 타입 가드로 만들기

Array의 경우:

  1. 인덱스 접근 시 ! 연산자 사용
  2. undefined 검사 후 사용
  3. in 연산자로 인덱스 존재 확인
  4. 커스텀 isLengthAtLeast() 함수로 길이 검사

권장사항: 복잡한 타입 해킹보다는 주류 해결책(non-null 단언, undefined 검사 등)을 사용하는 것이 코드 이식성 면에서 더 좋습니다.

2개의 좋아요