타입스크립트에서는 변수 하나를 만들고 타입을 지정할 수 있다.
유니온 타입 :
그런데, 가끔가다가 숫자만이 아니라, 문자도 같이 들어오게 하고 싶을 때 어떻게해야할까?
let 변수 : string | number = 'kim'
이렇게 변수에 string | number형식으로 타입을 선언하면 문자 또는 숫자의 타입을 허용한다는 말이 된다. 이렇게 두 가지 타입을 합친다는 의미로 union이라는 단어를 사용한다.
소괄호를 쳐도 된다. (string | number | boolean)
응용하기 :
문제 상황을 생각해보자
let 회원들 : number[] = [1,2,3];
이렇게 배열안의 타입을 정해줄 수 있다 . 그런데 만약 배열안에 [1,'2',3]과 같이 숫자도 들어가고 문자도 들어가는 배열을 만들고 싶으면 어떻게해야할까?
또 다른 문제도 같이 생각해보자.
let 오브젝트 : { a : string } = { a : '123' }
또 이 오브젝트를 볼 때, a라는 키값에 숫자도 넣고 싶고 문자도 넣고 싶을때는 어떻게 해야할까?
let 회원들 : (number | string)[] = [1,'2', 3] ;
let 오브젝트 : { a : string | number } = { a : 123 }
이렇게 하면 우리가 마주한 문제를 해결할 수 있다.
any타입 :
만약 이렇게 하는게 귀찮다면 any라는 타입이 있다.
let 이름 : any;
이름 = 123;
이름 = true;
그런데, any타입은 타입스크립트를 쓰는 의미가 없다. 그래서 가능하면 쓰지 않도록 한다.
unknown타입 :
unknown타입은 any보다는 안전하다.
let 이름 : unknown;
이름 = 123;
이름 = { };
이게 any보다는 안전한데, 안전한 이유는
let 변수 1 : string = 이름 ; 이렇게 했을 경우 에러가 난다.
마지막에 할당된 변수의 타입으로 타입이 지정되어 있기 때문이다.
'Javascript > TypeScript' 카테고리의 다른 글
[타입스크립트] protected, static 키워드 사용하기 (0) | 2021.10.10 |
---|---|
[타입스크립트] public, private 키워드를 사용하는 방법 (0) | 2021.10.10 |
[타입스크립트] rest parameter의 타입을 지정하기 (0) | 2021.10.09 |
[타입스크립트] 클래스의 타입을 지정하기 (0) | 2021.10.09 |
[타입스크립트] 타입스크립트 필수문법 간략 정리 (0) | 2021.10.08 |