📒

4번 배열과 튜플 퀴즈

 

Q1. 다음 코드 중 에러가 발생하지 않는 코드를 모두 고르세요.

1) let years: number[] = [’2021’, ‘2022’];
2) let menu: string | number[] = [’americano’, 4500];
3) let menu: (string || number)[] = [’americano’, 4500];
4) let menu: (string | number)[] = [’americano’, 4500];
5) let menu: Array<string | number> = [’americano’, 4500];
 
💡
정답 : 4, 5 1) number 타입으로 선언된 배열에 string 타입의 요소들이 할당되었다. 2) 유니온 타입으로 배열을 생성할 때는 string | number를 소괄호()로 묶어주어야 한다. 3) 유니온 타입의 연산자는 |이다.

 

Q2. 다음은 user라는 튜플을 정의한 코드입니다. 빈칸 A, B, C에 들어갈 알맞은 내용을 작성해보세요.

let user: [ __A__ ,__B__, __C__ ] = ['Jerry', 25, 'Male']
 
💡
정답 : A: string, B: number, C: string

 

Q3. 튜플의 타입 선언 방법으로 잘못된 코드를 고르세요.

1) let drink: [string, number] = [’cola’, 2500];
2) let drink: [string, string] = ['cola', '2500'];
3) let drink: [string, number, string] = ['cola', 2500, 'cider'];
4) let drink: [string, number] = [’cola’, 2500, cider];
5) let drink: [string, ...number[]] = [’cola’, 2500, 1500, 1000];
💡
정답 : 4 1) drink에 두 개의 요소만 허용하게끔 지정하였으나, 배열에 세 개의 요소를 할당하려 하였다.

 

Q4. 배열의 데이터 타입에 대해서 설명한 것으로 옳은 것은?

1) 정적 타입은 명시되지 않은 하나의 데이터 타입의 요소만 배열에 담을 수 있다
2) 정적 타입은 배열안에 두개 이상의 데이터 타입을 넣고자 할 떄 사용한다
3) 둘 이상의 타입 적용시 any타입을 이용하는 것이 좋다
4) 데이터 타입을 어떻게 주느냐에 따라 정적 메서드 타입과 유니온 타입이 있다
5) 유니온 타입 이외에 any 타입을 사용하면 자유롭게 원하는 타입의 데이터를 담을 수 있지만 데이터 요소의 일관성이 없고, 타입스크립트를 사용하는 목적이 사라지므로 둘 이상의 타입에 적용시에는 지양한다
💡
정답 : 5 1) 정적 타입은 직접 명시한 하나의 데이터 타입의 요소만 배열에 담을 수 있다 (명시하지 않은 요소 추가시, 에러 메세지가 뜬다) 2) 유연 타입은 배열안에 두개 이상의 데이터 타입을 넣고자 할 때 사용한다 3) any 타입 사용시 데이터 요소의 일관성이 없고, 타입스크립트를 사용하는 목적이 사라지므로 둘 이상의 타입에 적용시에는 지양한다 4) 데이터 타입을 어떻게 주느냐에 따라 정적타입과 유연타입이 있다