튜플

GoGoDev·2022년 1월 29일
0

JS & TS

목록 보기
11/11

튜플

튜플은 자바스크립트 배열과 유사하면서 다른 타입스크립트의 데이터 타입이다.
배열을 확장한 기능이다. 즉 배열이 가지고 있는 기능을 튜플에서 다 가지고 있다.
배열과 다른 점은 제약사항을 부여할 수 있는 점이다.

const address: [number, string, string] = [18023, '화성시', '동탄'];

let [zipcode, address1] = address;

//zipcode = '12345'; // ERROR: zipcode

type BookInfo = [string, string, number];

const BookData: BookInfo[] = [
    ['개미', '베르나르', 1991],
    ['개미', '베르나르', 1991],
];

BookData.push(['신', '베르나르 베르베르', 2000]);

function getArrayOne(): any[] {
    return [18023, '화성시', '동탄'];
}

type Address = [number, string, string];

function getArrayTwo(): Address {
    return [18023, '화성시', '동탄'];
}

let address2 = getArrayTwo()[2];

//address2 = 12;

배열은 원소의 개수를 제약하지 않지만 튜플은 원소의 수를 제약할 수 있다.

const address: [number, string, string] = [18023, '화성시', '동탄'];

[number, string, string]으로 제약을 걸어두었기 때문에 첫번째는 number, 두번째는 string, 세번째는 string 데이터 타입이 들어가야한다.

let [zipcode, address1] = address;

구조 분해 할당을 통해 address에서 첫번째 값을 zipcode에 두번째 값은 address1에 부여할 수 있다. zipcode는 18023이라는 number타입을 가져온다. 하지만

zipcode = '12345'; // ERROR: zipcode

이와 같이 number 타입에 string 타입을 넣게 되면 오류가 발생한다.

튜플은 배열 속의 타입 체크가 가능한 점이 가장 큰 장점인 것 같다.

profile
🐣차근차근 무럭무럭🐣

0개의 댓글