타입스크립트는 배열을 추론할 때 요소들의 타입을 토대로 추론합니다. 빈 배열은 any[]로 추론되므로 주의해야 합니다.
const arr3 = [1, 3, 5];
// const arr3: number[]
const arr4 = [1, '3', 5];
// const arr3: (string | number)[]
const arr5 = [];
// const arr3: any[]
arr3 배열의 요소는 전부 number 타입이라 arr3는 number[]로 추론됩니다. arr4에는 '3' 문자열이 들어 있어서 요소가 string이거나 number 타입입니다. 따라서 타입스크립트는 (string | number)[] 로 추론합니다. | 연산자는 2.6절에서, any[]는 2.7.1절에서 다시 언급합니다.
이러한 추론에는 한계도 있습니다. 1.3절에서 봤던 문제를 다시 보겠습니다.
const array = [123, 4, 56];
array[3].toFixed();