TypeScript-유니온 타입

hannah·2023년 9월 28일
0

JavaScript

목록 보기
108/121

유니온 타입(Union type)

"|"를 사용해 두개 이상의 타입을 선언하는 방식이다.

  • 유니온과 제너릭은 둘다 여러 타입을 다룰 수 있다는 공통점이 있다.
    단, 유니온은 선언한 공통된 메소드만 사용할 수 있고,
    리턴 값이 하나의 타입이 아닌 선언된 Union 타입으로 지정된다.

다음 코드는 유니온 타입으로 작성되었다. 타입을 string과 number 두개를 넣어 선언했고 number에는 length 속성이 존재하지 않기 때문에 에러가 발생하는 것을 알 수 있다.

const printMessate = (message: string | number) => {
  return message;
};

const message1 = printMessage(1234);
const message2 = printMessage("Hello World!");

// string이 아닌 number에 length 속성이 존재하지 않기 때문에 에러가 발생한다.
message1.length;

위와 동일한 함수를 제너릭을 통해 구현해보자. printMessage2 함수에 제너릭 타입으로 선언하고 함수 호출 시, String 타입을 명시하였다. 따라서 message1.length를 호출하여도 에러가 발생하지 않는 것을 알 수 있다.

const printMessage2 = <T>(message: T) => {
  return message;
};

const message1 = printMessage2<String>("Hello world!");
message1.length;

0개의 댓글