더북(TheBook)

array[3]undefined인데도 toFixed 메서드를 붙일 수 있는 문제가 있었습니다. arraynumber[]로 추론되면서 array[3]number로 추론되기 때문입니다. 이러한 문제는 바로 뒤에 배우는 튜플을 사용해서 해결할 수 있습니다.

자바스크립트에서는 배열에 아무 타입의 값이나 자유롭게 넣을 수 있었는데, 타입스크립트에서는 자유도가 제한되었습니다. 하지만 잘 생각해보면 배열에는 대부분 같은 타입의 값이 들어갑니다. 다른 타입의 값이 들어가는 경우에는 보통 배열의 길이가 짧거나 고정되어 있습니다.

각 요소 자리에 타입이 고정되어 있는 배열을 특별하게 튜플(tuple)이라고 부릅니다. 튜플은 다음과 같이 타이핑합니다.

const tuple: [number, boolean, string] = [1, false, 'hi'];
tuple[0] = 3;
tuple[2] = 5; 
// Type 'number' is not assignable to type 'string'.
// Tuple type '[number, boolean, string]' of length '3' has no element at index '3'.
tuple[3] = 'no'; 
// Type '"no"' is not assignable to type 'undefined'.
tuple.push('yes');
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.