배열
객체와 마찬가지로 배열은 자바스크립트에서 자주 사용되는 타입입니다. 문자, 숫자, 배열 그리고 객체 등 여러 데이터 형태를 배열에 담을 수 있죠.
타입스크립트에서 배열은 유연한 타입 혹은 정적인 타입을 가질 수 있습니다.
유연한 타입, 정적인 타입 어떤 의미일까요? 예시를 통해서 살펴보겠습니다.
먼저 정적인 타입의 배열입니다:
위의 pets
배열은 string
타입의 요소들로만 이루어져 있습니다. 이렇듯 단일 타입의 요소들로만 구성된 배열을 타입스크립트에서는 정적인 타입의 배열이라고 합니다. 그리고 다음과 같이 배열의 타입을 정합니다.
이제 pets
에는 string
타입의 요소만 포함될 수 있습니다. 만일 다른 타입의 데이터가 배열의 요소로 들어오려고하면 에러가 발생합니다.
또다른 배열을 살펴보겠습니다:
배열 userBirth
는 string
과 number
타입의 요소가 섞여있는 배열입니다. 타입스크립트에서는 여러 타입의 요소가 섞여있는 배열을 유연한 타입의 배열이라고 합니다.
정적인 타입의 배열과는 다르게 유연한 타입의 배열은 이름에서 알 수 있듯 여러 타입의 데이터를 배열의 요소로 가질 수 있습니다. 배열의 타입은 다음과 같이 정합니다.
정적 타입의 배열
타입이 지정된 배열은 오류가 적은 코드를 짤 수 있도록 도와줍니다.
예시로 살펴보겠습니다:
for
문 안에 있는 두 줄의 코드 중 한 줄은 IDE에서 혹은 타입스크립트 파일을 컴파일 하려고하면 오류가 발생합니다. 어느 줄 일까요?
바로 두 번째 줄입니다. 왜냐라면 pets
는 string
타입의 요소들로만 이루어져 있는데, 배열 객체에 속한 map
메서드를 사용하려고 하니 오류가 발생하는 것입니다. 똑같은 코드를 자바스크립트 파일에 붙여넣어도 IDE는 해당 자바스크립트 파일에 오류가 있다고 알려주지 않습니다.(물론 자바스크립트 파일을 실행하면 하면 오류가 발생합니다.😃)