타입스크립트 리터럴 타입, 유니온 타입, 배열, 튜플

데브코스

목록 보기
79/131

리터럴 타입(내가 정한 값들만 들어올 수 있어)

  • 리터럴 타입은 특정 값을 나타내는 타입으로 해당 값이 정확하게 일치해야 한다. 타입스크립트에서 사용되는 리터럴 타입에는 다양한 종류가 있다.
  • 문자열 리터럴, 숫자 리터럴 타입, 불리언 리터럴 타입, 객체리터럴, 타입 별칭

리터럴 타입을 사용하면 좋은 점

  • 코드의 가독성이 높아짐! (정해진 값만 사용하니까)
  • 잘못된 값이 들어오는 것을 방지할 수 있어.

any타입

  • 타입스크립트는 타입에 관한 정보가 더 많을수록 더 좋다.
  • 타입 정보는 개발자의 의도를 명확하게 전달할 수 있다.
  • 효과적인 코드의 유지보수가 가능하다.
  • any타입을 일부러 사용하지는 말자.(남발하면 타입스크립트를 사용하는 이유가 없어.)
  • 그래서 타입을 지정할 수 없는 제한적인 경우에만 any타입을 사용하자.

유니온 타입 (공용체)

  • 제한된 타입을 동시에 지정하고 싶을때가 있다.
let anyVal : number | string;
// 넘버나 스트링 타입이 둘 다 올 수 있어.
  • | 기호를 사이에 두고 동시에 타입을 지정할 수 있다. = 즉, 여러 개의 타입이 동시에 올 수 있다!(or또는 같은 의민가? => 맞음.)
  • anyVal 변수는 number나 string 타입 중 아무 타입의 값이 올 수 있다.

하지만 저 number | string 을 함수나 변수에 여러 번 써야한다면, 계속 저걸 반복적으로 사용하는 것보다 저런 타입을 하나 지정해두면 더 간편해진다. (중복되는 기능을 하나의 함수로 만들어서 사용하는 것 처럼 이 타입도 그렇게 사용할 수 있다.)

어떻게 사용하냐면

type strOrNum = number | string;

이런 식으로 정해주면, 이제 strOrNum이란 변수의 타입은 넘버 아니면 스트링 이기에 저 변수를 사용해서 타입을 지정해줄 수 있다.

정리하면,
any타입 : 타입 체크를 하지 않는다. 어떤 타입이 오더라도 괜찮아. 하지만 그럼 타입스크립트 쓰는 이유가 없겠지?
유니온 타입 : 제한된 타입들을 파이프라인으로 구분하여 동시에 지정함. (여러 개의 타입을 지정해서 사용할 수 있어.)
타입 알리아스 : 반복되는 코드를 재사용한다.
타입 가드 : typeof 연산자를 이용하여 타입 검증을 수행한다.


타입스크립트의 배열

  • 타입스크립트에선 배열도 이게 문자열 배열인지, 정수형 배열인지 정해줘야 하는데,
let numbers : number[] = [1, 2, 3, 4, 5];
let fruits : string[] = ['apple', 'banana', 'orange'];

이런 식으로 타입을 정해주면 된다. 타입을 정해주면 그 배열 안에는 해당하는 타입만 배열로 가질 수 있다.

배열도 마찬가지로 타입을 유니온 타입으로 여러 개 가질 수 있는데,

let mixedArray : (number | string)[] = [1, 'one', 2, 'two'];

이런 식으로 쓸 수 있고, 이것도 당연히 저기 만들어둔, strOrNum도 사용할 수 있음!


튜플

let greeting : [number, string, boolean] = [1, 'hello', true];

튜플은 이런 식으로 타입의 순서가 정해져 있어.
그렇기 때문에 순서 맞게 배열의 타입을 작성할 수 있지.


Spread 연산자

let firstArray = [1, 2, 3];
let secondArray = [4, 5, 6];

let combineArray = [...firstArray, ...secondArray];
저 두개의 배열을 합치고 싶으면 어떻게 하냐면, 일단 저 배열이 괄호로 각각 묶여져 있으니까, 그 괄호를 허물어주면 돼.
허무는 방법은
이렇게 배열 앞에 ...을 붙이면 배열의 괄호를 벗기게 해준다. 그래서 그 배열안에 있는 값들을 가져올 수 있어.

profile
Dive Head First | Work Super Hard | Attract Great People

0개의 댓글