[TypeScript] 튜플(Tuple) 타입

해리포터·2022년 11월 10일
0
post-thumbnail

Tuple

튜플 타입은 TypeScript에서 특수한 타입의 배열로, JavaScript에서는 지원하지 않는 타입이다.

Tuple 타입은 배열의 길이와 타입이 고정되어 있는 것(fixed length and type)이 특징이다.


아래와 같은 key들을 가지고 있는 person이 있다고 하자.

const person = {
	name: 'Harry',
    age: 20,
    skill: ['Swimming', 'Violin'],
    role: [3, 'student']
}

만약 role이 길이와 타입이 고정된 배열이어야 한다면, 이런 상황에 Tuple이 유용할 것이다.

person의 타입을 아래와 같이 지정할 수 있다.

const person: {
	name: string;
  	age: number;
  	skill: string[];
  	role: [number, string]; // ✨ Tuple 타입
} = {
	name: 'Harry',
  	age: 20,
  	skill: ['Swimming', 'Violin'],
  	role: [3, 'student']
}

위의 예시에서 role의 값으로는 2개의 요소를 가진 배열이 할당되어야 하며, 그 순서는 각각 숫자 타입의 요소, 문자열 타입의 요소이어야 한다.

이 규칙을 벗어나는 값으로 할당해서 컴파일 할 경우에는 ❌에러가 발생한다.


🫢 Tuple의 규칙을 무시하는 push ?

예외적으로, 배열의 길이를 변화시키는 push 는 작동이 된다.

person.role.push('developer');
// [3, 'student', 'developer'] 가 출력된다..!!!!

하지만 아래와 같이 코드를 작성한다면 에러가 발생한다.
push는 되는데 이건 또 안된다 뭐냐..

person.role = [3, 'student', 'developer']
profile
FE Developer 매일 한 걸음씩!

0개의 댓글