[Typescript] 기본 타입 - 배열, 튜플

Bam·2023년 7월 3일
0

Typescript

목록 보기
8/32
post-thumbnail

배열

타입스크립트에서 배열은 배열을 저장할 수 있는 타입입니다. 자바스크립트와 동일하게 리터럴 방식으로 선언하며 배열의 요소 타입을 타입으로 명시해준다는 것이 특징입니다.

let numbers: number[] = [1, 2, 3];
let strings: string[] = ['apple', 'banana', 'melon'];

다차원 배열도 생성할 수 있습니다.

let numbers: number[][] = [[1, 2], [3, 4]];

배열 제네릭

위 방식 외에도 제네릭이라는 방식으로도 배열을 선언할 수 있습니다.

let numbers: Array<number> = [1, 2, 3];

제네릭은 함수나 클래스 등에서 다양한 가변 타입을 활용할 수 있도록 지원하는 기능인데요. 이 기능에 대해선 추후 따로 다루도록 하겠습니다.

여러 타입 배열 선언

하나의 타입을 명시하는 경우, 해당 배열에는 한 가지 타입이 올 수 있습니다. 하지만 자바스크립트가 다루는 배열은 다양한 타입들이 섞여있는 경우가 있는데요. 타입스크립트에서도 여러 타입을 가진 배열을 선언할 수 있는 기능을 지원하고 있습니다.

소괄호 ()바 |를 이용해서 여러 타입 배열을 선언할 수 있습니다.

let arr: (number | string)[] = [1, 'apple'];

위와같이 표기한 배열은 요소의 타입이 number, string 두 개가 올 수 있음을 의미합니다.

이런 방식을 유니온이라고 부르는데, 이 역시도 추후에 따로 다룰 예정입니다.


튜플

튜플(tuple) 타입은 타입스크립트만의 타입으로 길이와 타입이 고정된 배열을 의미합니다.

배열과 비슷하지만 약간 다른데요. 다음과 같이 타입과 길이를 고정시킨 튜플을 선언합니다.

let tuple: [number, number, number] = [1, 2, 3];

위와 같이 선언하는 경우, 길이가 3이고 모든 요소의 타입이 number인 튜플이 정의됩니다.



튜플도 여러 타입을 갖도록 선언할 수 있습니다.

let tuple: [number, string] = [1, 'apple'];

추가적으로, 튜플을 tsc로 컴파일해서 나온 JS 파일을 보면 배열로 변환됩니다.

즉, 튜플 === 배열입니다. 따라서 Array 내장 객체의 메소드/프로퍼티를 튜플에서도 이용할 수 있습니다.

0개의 댓글