typescript

유니온타입이란?

Kassy_kim 2023. 3. 20. 23:57

 

1개의 타입이 아닌 2개 이상의 타입을 지정하는 타입을 유니온타입이라 한다.

//union Type_ 타입 2개 이상 합친 새로운 타입
let member: number | string = 123;
let members: (number | string)[] = [1, "2", 3];
let object: { a: string | number } = { a: "123" };

 

그렇다면 유니온타입으로 숫자 연산은 가능할까? 정답은 불가능이다.

let age: string | number;
age + 1; //유니온타입일 땐 불가

 

타입스크립트는 엄격한 자바스크립트이기에 연산이 가능한 타입을 지정해야한다.

따라서 any와 unknown 타입의 경우에도 당연히 불가능하다.

//모든 자료형 허용해줌
let myName: any;
myName = 123;
myName = [];
//모든 자료형을 허용해주지만 any보다는 안전
let yourName: unknown;
yourName = 123;
yourName = {};

yourName - 1; //타입스크립트의 엄격함으로 인해 간단한 수학 연산도 타입이 맞아야 함