배열을 저장하는 변수 이름 뒤에 타입 주석으로 배열 요소 타입[]
형식으로 배열 타입 정의
let numArr: number[] = [1,2,3];
let strArr: string[] = ["hi", "hello", "Good Morning"];
let boolArr: boolean[] = [true, false];
// 제네릭 문법으로 정의
let boolArr: Array<boolean> = [true, false];
let multiArr: (number | string)[] = [1, "hello"];
let doubleArr : number[][] = [
[1, 2, 3],
[4, 5],
];
TS의 특수한 타입으로 길이와 타입이 고정된 배열을 의미
// 길이가 2로 고정된 2개의 number 타입 요소를 갖는 튜플 타
let tup: [number, number] = [1,2];
// 다양한 타입을 포함한 튜플 타입
let tupDiff: [number, string, boolean] = [1, "hello", true];
튜플은 컴파일 후 자바스크립트 배열로 변환되므로 결국 배열 타입이다. 그러므로 배열 메서드인 push
, pop
을 이용해 고정된 길이를 무시하고 요소 추가 혹은 삭제 가능하다.
따라서 튜플을 사용할 때는 배열 메서드를 이용해 요소를 추가하거나 삭제하는 등 연산을 할 때 각별히 주의해야한다.
튜플은 변수에 저장할 배열 원소의 순서에 따라 타입을 지정할 수 있다는 특징이 있다.
예를 들어, 회원 정보를 배열로 저장한다고 했을 때 [이름, 나이]
순으로 저장하겠다는 규칙을 튜플 타입으로 지정해둔다면 [나이, 이름]
순으로 요소가 추가되었을 때 오류로 인지하고 수정할 수 있다.