<aside> 💡 대수 타입
여러개의 타입을 합성해서 새롭게 만들어낸 타입 합집합 타입과 교집합 타입이 존재합니다.
</aside>
let a : string | number | boolean;
a = 1;
a = "hello";
a = true;
let arr: (number | string | boolean)[] = [1, "hello", true];
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: "",
}
// 이것만 허용이 안됨 Dog와 Person의 합집합 영역에 포함이 안됨
// let union4 : Union1 = {
// name: ""
// }

let variable : number & string;
type Dog2 = {
name : string;
color : string;
};
type Person2 = {
name : string;
language: string;
};
type Intersection = Dog2 & Person2;
// 하나라도 빼먹으면 안됨
let Intersection1 : Intersection = {
name: "",
color: "",
language: "",
}
