티스토리 뷰
안녕하세요 동기 여러분! 오늘은 유니온 타입의 다섯 번째 시간으로 공통의 키와 값에 대해 알아봅시다!
Common Key Value Pairs
아래의 코드를 살펴봅시다.
type Diablo2 = {
releaseDate: number,
developer: string,
}
type Starcraft = {
releaseDate: number
}
const gameInfo: Diablo2 | Starcraft = { releaseDate: 23904 }; // 에러 없음
const gameInfo2: Diablo2 | Starcraft = { developer: '블리자드' }; // 에러 있음
- 타입 Diablo2에는 releaseDate가 타입 number로 developer는 타입 string로 선언되어 있습니다.
- 타입 Starcraft에는 releaseDate만 타입 number로 선언되어 있습니다.
- 이럴 경우 gameInfo라는 변수를 만들어 타입을 Diablo2 | Starcraft인 유니온 타입으로 선언하고 값을 { releaseDate: 23904 }로 선언하면 에러가 없지만
- gameInfo2라는 변수를 만들어 타입 Diablo2 | Starcraft인 유니온 타입으로 선언을 하고 값을 { developer: '블리자드' }로 선언하면 에러가 납니다.
그 이유는 타입스크립트는 타입 멤버들을 유니온 타입으로 만들었을 때 공통(Common)의 메서드나 프로퍼티들만 사용할 수 있게 해 줍니다. → 타입 Diablo2와 Starcraft의 교집합에 있는 메서드나 프로퍼티만 적용이 된다는 소리
에러가 나는 const gameInfo2: Diablo2 | Starcraft = { developer: '블리자드' }; 코드를 컴파일링 하면 아래와 같은 에러가 나타납니다.
- 타입 '{ developer: string; }'은 타입 'Diablo2 | Starcraft'에 선언할 수 없다.
- 프로퍼티 'releaseDate'는 타입 '{ developer: string; }'에 없지만 타입 'Diablo2'에는 필요하다. → 타입 Diablo2에만 developer: string이 있기 때문
오늘의 느낌
아 너무 어렵다 이 오늘 배운 내용은 내용이 많이 미흡합니다. 다음에 공부 더 해서 수정본을 업로드하겠습니다 ㅠㅠ
'TypeScript' 카테고리의 다른 글
[TypeScript] Type guards (0) | 2022.01.21 |
---|---|
[TypeScript] Unions with Literal Types (0) | 2022.01.21 |
[TypeScript] Unions and Arrays (0) | 2022.01.20 |
[TypeScript] Inferred Union Return Types (0) | 2022.01.20 |
[TypeScript] Type Narrowing (0) | 2022.01.19 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Python
- method
- 반복문
- 함수
- padding
- Object
- for문
- em
- CSS
- 동기코딩
- CSS 포지션
- 프로그래머스
- 파이썬
- 객체
- function
- Margin
- if문
- html table
- 실수
- javascript
- 자바스크립트
- 메서드
- html
- css position
- Type
- 타입스크립트
- 타입 좁히기
- HTML 기본
- Array
- Typescript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함