-
타입스크립트 (TypeScript) 타입스크립트 유니온 타입에 대해 공부했습니다.
하나의 타입에 여러개의 값을 지정해줄 수 있습니다. 선언할 때, 발생하는 케이스중에서 하나를 선택하면 됩니다.
// Union Type type Rating = 'string | number'; // string과 number를 같이 타입으로 지정해줍니다. const first: Rating = 1; function ratingPrint(rating: Rating) { console.log(rating); }; ratingPrint(1); // 1 ratingPrint(일등); // '일등'
기본 예시입니다. 이렇게 하나의 타입에 여러개의 타입이나 값을 지정해줄 수 있습니다.
문자열 그 자체를 선언해줄수도 있어 만약 다른 문자열이 들어가게되면 오류가 발생합니다.
(이런면에 있어서 enum보다 좋은거 같다는 생각이 듭니다.)
* Discriminated Union
// Discriminated Unions // 새 타입을 정의해줍니다. type A = { rank: 'A'; description: string; }; type B = { rank: 'B'; description: string; }; type C = { rank: 'C'; description: string; }; type Rank = A | B | C; // Rank라는 타입에 A, B, C를 지정합니다. (유니온 타입) // 랭크를 읽어주는 함수 생성 function printScoreRank(rank: Rank) { switch (rank.rank) { case 'A': console.log(`상위권 : ${rank.description}`); break; case 'B': console.log(`중위권 : ${rank.description}`); break; case 'C': console.log(`하위권 : ${rank.description}`); break; default: throw new Error(`Invalid rank ${rank}`); } } printScoreRank({ rank: 'A', description: '90점 이상' }); // 상위권 : 90점 이상 printScoreRank({ rank: 'B', description: '70점 이상 90점 이하' }); // 중위권 : 70점 이상 90점 이하 printScoreRank({ rank: 'C', description: '70점 미만' }); // 하위권 : 70점 미만
이런식으로 응용하여 사용할 수 있습니다.
유니온타입은 특정 상황에서 유용하게 사용할 수 있을 것 같다는 생각이 듭니다.
'코딩 기록 > 타입스크립트' 카테고리의 다른 글
(TypeScript) 타입스크립트 inference & assertion (타입 추론 & 타입 단언) (0) 2021.03.04 (TypeScript) 타입스크립트 Intersection Type(인터섹션 타입) (0) 2021.03.04 (TypeScript) 타입스크립트 Enum Type(열거형 타입) (0) 2021.01.26 (TypeScript) 타입스크립트 배열(Array) 선언과 튜플(Tuple) 선언 (0) 2021.01.25 (TypeScript) 타입스크립트의 기초 타입 선언 (0) 2021.01.23 댓글