학습 공간 개념 · 판단 · 실험

Fanta Lab

질문 130 · 실전 면접 답변

Tuple은 일반 배열보다 어떤 계약을 더 표현하나요?

이렇게 답해 보세요 (핵심 답변)

일반 배열(T[])은 같은 타입의 요소가 몇 개든 들어올 수 있는 컬렉션인 반면, 튜플(Tuple, 예: [string, number])은 배열의 길이와 각 인덱스 위치의 타입을 고정한 계약입니다. 따라서 각 위치에서 타입 좁히기 없이 해당 타입의 메서드를 바로 쓸 수 있고 구조 분해 할당 시에도 위치별 타입이 정확히 추론됩니다. 대표적으로 React의 useState가 반환하는 [상태, 설정함수] 쌍이나 좌표 [x, y]처럼 순서 자체가 의미를 가질 때 유용합니다.

함께 설명하면 좋은 이유 (꼬리질문 대비)

  1. 튜플에도 선택적 요소([string, number?])나 나머지 요소([string, ...number[]])를 조합해 최소 길이와 앞뒤 위치 계약을 표현할 수 있습니다.
  2. 불변 튜플을 표현할 때는 readonly [number, number]나 as const를 함께 사용하여 실수로 요소를 덮어쓰거나 push하는 코드를 컴파일 타임에 막습니다.

면접에서 자주 하는 실수

튜플은 TypeScript의 타입 수준 제약일 뿐 런타임에는 일반 JavaScript 배열이므로, 외부에서 들어온 배열은 길이와 요소 타입을 별도로 검증해야 합니다.

원리와 예제까지 읽기

공식 참고 자료

질문 목록 출처 ↗ · 원본 130번을 바탕으로 질문과 답변을 새로 정리했습니다.

← TypeScript