티스토리 뷰
다들 건강하신가요 동기 여러분! 오늘은 유니온 타입의 마지막 시간으로 리터럴 유니온 타입에 대해 알아봅시다.
영어를 사용하는 외국인들을 관찰(?) 아니.. 음 그들의 이야기를 잘 들어보면 A~~ , the a~~ , though, literally 라는 말을 엄청 많이 사용하는데 literally의 형용사형이 바로 literal입니다. 뜻은 '글자 그대로의'입니다. 뜻을 유념하며 오늘의 포스팅 시작합니다!
Unions with Literal Types
리터럴 유니온 타입은 뚜렷한 상태를 프로그램으로 만들 때 상당히 유용합니다.
생김새와 사용방법
type DragoonQuotation = 'trained' | 'selected' | 'confirming order' | 'repeatedly selected';
function whatDragoonSays(dragoonQuotation: DragoonQuotation) {
// 함수 내용~~~
}
- type 적고 타입명을 작성하고 뚜렷한 상태들('trained' | 'selected' | 'confirming order' | 'repeatedly selected')을 열거하면 됩니다.
- 그리고 함수를 만들어서 매개 변수에 타입을 선언(주석 달기)해주면 끝입니다!
If문을 사용하여 함수 완성하기 (스타크래프트1 드라군의 대사)
type DragoonQuotation = 'trained' | 'selected' | 'confirming order' | 'repeatedly selected';
function whatDragoonSays(dragoonQuotation: DragoonQuotation) {
if(dragoonQuotation === 'trained') {
console.log('I have returned.');
}
if(dragoonQuotation === 'selected') {
let selectedQuo = ['Receiving.', 'Awaiting instructions.', 'transmit', 'Input command.', 'Galahoslos?', 'Za Khaladas.', 'Make use of me', 'I am needed?'];
let i = Math.floor(Math.random() * selectedQuo.length);
console.log(selectedQuo[i]);
}
if(dragoonQuotation === 'confirming order') {
let confirmingOrderQuo = ['Confirmed.', 'Initiating.', 'Lokh-tai', 'Metonah.', 'Commencing', 'Nagat Zuul.', 'For vengeance.'];
let j = Math.floor(Math.random() * confirmingOrderQuo.length);
console.log(confirmingOrderQuo[j]);
}
if(dragoonQuotation === 'repeatedly selected') {
let repeatedlyQuo = ['Unauthorized transmission', 'Incorrect protocol.', '(warning beep) Drop your weapon! You have 15 seconds to comply.', 'Five... Four... Three. Two. One! (fires phase disruptor)'];
let k = Math.floor(Math.random() * repeatedlyQuo.length);
console.log(repeatedlyQuo[k]);
}
}
whatDragoonSays('trained');
whatDragoonSays('selected');
whatDragoonSays('confirming order');
whatDragoonSays('repeatedly selected');
- 함수 whatDragoonSays를 만들어 매개 변수 dragoonQuotation의 타입은 DragoonQuotation으로 설정해두었습니다.
- 만약 dragoonQuotation이 타입 'trained'라면 'I have returned'를 출력합니다.
- 만약 dragoonQuotation이 타입 'selected'라면 배열 seletedQuo중 한 요소를 랜덤으로 뽑아서 출력합니다.
- 만약 dragoonQuotation이 타입 'confirming order'라면 배열 confirmingOrderQuo중 한 요소를 랜덤으로 뽑아서 출력합니다.
- 만약 dragoonQuotation이 타입 'repeatedly selected'라면 배열 repeatedlyQuo중 한 요소를 랜덤으로 뽑아서 출력합니다.
- 그 아래는 각 타입에 따른 함수 호출입니다.
컴파일링과 실행해보기
1. 컴파일링
2. 실행
오늘의 느낌
스타크래프트 레이쓰 성대모사 'Wraith awaiting launch orders.' 계속 연습하다 보니까 이제 발음이 자연스럽게 된다!!!
'TypeScript' 카테고리의 다른 글
[TypeScript] Using in with Type Guards (0) | 2022.01.21 |
---|---|
[TypeScript] Type guards (0) | 2022.01.21 |
[TypeScript] Common Key Value Pairs (0) | 2022.01.20 |
[TypeScript] Unions and Arrays (0) | 2022.01.20 |
[TypeScript] Inferred Union Return Types (0) | 2022.01.20 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Array
- if문
- 함수
- 실수
- 동기코딩
- Type
- CSS 포지션
- 파이썬
- padding
- css position
- 타입 좁히기
- javascript
- 객체
- 프로그래머스
- Margin
- em
- method
- 타입스크립트
- for문
- Object
- 반복문
- CSS
- Typescript
- function
- HTML 기본
- html table
- html
- 자바스크립트
- Python
- 메서드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함