type Dog = {
name: string;
color: string;
};
type Person = {
name: string;
language: string;
};
type Union1 = Dog | Person;
let union1: Union1 = {
name: "",
color: "",
};
let union2: Union1 = {
name: "",
language: "",
};
let union3: Union1 = {
name: "",
color: "",
language: "",
};
// 아무 집합에도 포합되지 않아 에러발생
// let union4: Union1 = {
// name: "",
// };
⬇️⚠️에러발생 - 공통으로 들어간 name만 쓰면 에러
&
두타입의 교집합은 모든 프로퍼티를 가지고있다.
하나라도 빼먹으면 안된다.
type Dog = {
name: string;
color: string;
};
type Person = {
name: string;
language: string;
};
type Intersection = Dog & Person;
let Intersection: Intersection = {
name: "",
color: "",
language: "",
};
// 🚨에러!!! / 모든 프로퍼티 3개 다 있어야함!!
let Intersection2: Intersection = {
name: "",
color: "",
//language: "",
};