유니온타입의개념 및 프로퍼티 접근
72
작성자 없음
0 câu hỏi đã được viết
type Dog={
name:string,
color:string
}
type Person={
name:string,
language:string
}
let union1 : Dog | Person = {
name:"",
color:"",
language:""
}
console.log(union1.name)
console.log(union1.color)
교집합은 이해가 너무 잘 됩니다.
질문1.
유니온타입이
온전히 Dog 이던가 / 온전히 Person 이던가 / 둘 다 포함된 객체이다 .
제가 배운내용이 맞는지 궁금합니다.
질문2 .그런데 밑에 속성에 접근 할 때에는 왜 name 은 접근이 가능한데 color 는 접근이 안되는지 궁금해요
질문3. 유니온타입은 Dog 또는 Person 둘 중 하나만 만족해야하는 건가요?? 다른자료를 찾다가 개념이 헷갈리네요
Câu trả lời 3
1
안녕하세요, 인프런 AI 인턴입니다. gxpk0721님.
질문해주신 유니온 타입에 대해서 잘 이해하고 계신 것 같습니다. 하나씩 답변 드리겠습니다.
질문 1. 유니온 타입이 온전히 Dog이던가 / 온전히 Person이던가 / 둘 다 포함된 객체이다.
유니온 타입(Union Type)은 Dog | Person으로 정의되었을 때, Dog 타입이거나 Person 타입 중 하나여만 가능합니다. 즉, 이는 두 타입 중 하나의 형태만을 실제로 가질 수 있다는 의미입니다. 구체적으로 말하면, Dog의 필드를 완전히 갖추던가, Person의 필드를 완전히 갖춰야 한다는 것입니다. 그러나 두 가지를 모두 가질 필요는 없습니다. 현재 질문에서 제시된 방식으로는 name, color, language가 모두 포함된 객체는 유효하지 않습니다.
질문 2. name은 접근이 가능한데 왜 color는 접근이 안되는지?
유니온 타입에서 객체의 프로퍼티에 접근할 때, 두 타입 모두가 공통적으로 가지고 있는 프로퍼티에만 직접 접근이 가능합니다. name은 Dog와 Person 모두에 존재하기에 사용할 수 있습니다. 하지만 color 또는 language는 하나의 타입에만 존재하기 때문에 타입스크립트는 이것이 항상 존재한다고 보장할 수 없습니다. 결과적으로, 이런 이유로 color에 직접 접근하면 타입 오류가 발생합니다.
질문 3. 유니온 타입은 Dog 또는 Person 둘 중 하나만 만족해야 하는 것인가요?
네, 맞습니다. 유니온 타입은 Dog 또는 Person 중 하나의 타입만 만족시키면 됩니다. 따라서 객체는 두 타입 중 하나로서만 완전히 정의되어 있어야 합니다.
또한 유사한 주제가 다루어진 질문 링크를 통해 더 깊은 이해를 돕고자 합니다:
- 유니온 타입 질문 드립니다
저는 질문자님의 이해를 돕고자 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
적절한 타입 찾기 React.ChangeEvent<HTMLInputElemen>
0
16
2
outDir 옵션 추가 후 컴파일 오류 질문
0
55
1
호출 시그니처 질문
0
63
2
서로소 유니언 타입이 discriminated union과 동의어 인가요?
0
72
2
조건부타입소개 중 함수오버로딩 활용 시 인수의타입과 함수의 반환값의 타입이 깨지는 문제
0
65
1
할인쿠폰 관련하여
0
153
2
프론트엔드에서의 인터페이스활용
0
90
2
안녕하세요 이정환님!
0
89
1
Node.js 설치에 관한 질문입니다.
0
79
2
함수 타입 호출 시그니처
0
56
1
35강. 모듈 보강은 라이브러리 파일을 직접 편집해야 하나요?
0
62
2
인터페이스 문법이 있는데 타입 별칭 문법은 왜 있나요?
0
114
4
마우스 호버 시 정보
0
90
2
vite으로 리액트 빌드하기를 업데이트해주세요.
1
89
2
타입가드를 만들어 사용하는 이유가 궁금합니다.
0
82
2
섹션 12가 너무 어려운데... 정상이겠죠..?
0
135
2
선생님.. 알고리즘도 강의해주시면안되나요
0
99
2
선생님은 어떻게 이런걸 아세요?
0
127
1
type: module
0
97
2
7:17초 업캐스팅 질문이있습니다!
0
75
1
슈퍼타입질문
1
61
2
프로젝트 설치
0
103
2
enum은 비원시 타입이면서 열거형 타입이 되는건가요?
0
67
2
함수는 함수타입? 객체타입??
1
91
2

