티스토리 뷰
안녕하세요 동기 여러분! 오늘은 유니온 타입의 네 번째 시간으로 유니온과 배열의 조합은 어떤지 알아봅시다!
Unions and Arrays
유니온은 배열과 함께 조합되어 사용될 때 그의 진가를 볼 수 있습니다.
아래의 코드를 살펴봅시다.
const dateNumber = Date.now();
const dateString = Date().toString();
- 변수 dateNumber를 Date.now() 메서드로 선언하는데 Date.now()는 1970년 1월 1일 0시 0분 0초부터 현재까지의 시간을 밀리초(millisecond) 단위의 정수로 반환한 값입니다.
- 변수 dateString을 Date() 생성자와 .toString() 메서드로 선언하는데 Date()는 생성 순간의 날짜와 시간을 나타내는 Date객체를 생성하고 .toString() 메서드는 객체를 문자열로 바꾸어 줍니다.
위 두 코드를 하나의 배열에 넣어보도록 합시다.
const timeList = [dateNumber, dateString];
- dateNumber는 정수로 반환한 값이기 때문에 타입이 number이어야 하고
- dateString은 객체가 문자열로 바뀌었으니 타입이 string입니다.
- 이런 경우 아래와 같이 튜플로 선언 할 수도 있지만
const timeList:[number, string] = [dateNumber, dateString]; // 튜플
- 튜플로 타입이 선언되면 배열과 인덱스 번호가 맞지 않거나 요소가 더 많거나(적거나) 타입 선언이 더 많거나(적거나)하는 경우 에러가 발생합니다.
- 하지만 아래와 같이 유니온 타입을 배열에 선언해주면 그러한 에러를 피해 갈 수 있습니다.
const timeList: (number | string)[] = [dateNumber, dateString];
- (number | string)[]으로 유니온 타입으로 배열이 선언되었기 때문에 string이나 number로 요소 추가도 가능하고 삭제도 가능합니다.
- 유니온 타입을 배열에 선언할 때의 주의할 점은 number와 string을 반드시 ( ) (parentheses)에 넣어주어야 합니다. 왜냐하면 number | string[]로 타입을 선언할 경우 string에만 배열이 적용되기 때문에 배열 안에 숫자가 들어가면 에러가 발생합니다. (아래의 스샷이 증거)
- 마지막으로 당연한 소리지만 timeList에 string이나 number가 아닌 다른 타입의 요소를 넣으면 에러가 생깁니다. (아래의 스샷이 증거)
- 문자나 숫자 타입은 추가가 가능합니다. (아래 스샷)
오늘의 느낌
왜 냉면이 먹고싶다고 적은 걸까....
아 냉면 하니까 생각하는데 저는 냉면 보다는 맛있는 냉면 육수에 찬 소면을 넣어서 먹는 게 훨씬 맛있더라구요! 냉면의 면의 질겨서 안 끊기니까 속이 더부룩한 느낌
'TypeScript' 카테고리의 다른 글
[TypeScript] Unions with Literal Types (0) | 2022.01.21 |
---|---|
[TypeScript] Common Key Value Pairs (0) | 2022.01.20 |
[TypeScript] Inferred Union Return Types (0) | 2022.01.20 |
[TypeScript] Type Narrowing (0) | 2022.01.19 |
[TypeScript] Defining Unions (0) | 2022.01.19 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Object
- CSS 포지션
- javascript
- 타입스크립트
- css position
- em
- 메서드
- 객체
- CSS
- if문
- 타입 좁히기
- function
- Typescript
- Margin
- padding
- Python
- html
- 자바스크립트
- 파이썬
- 함수
- Type
- 프로그래머스
- method
- 동기코딩
- 실수
- 반복문
- for문
- Array
- html table
- HTML 기본
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함