타입을 구성할 수 있는 방법 중 하나이다.
| 유니언 타입 |
or, | |
| 교차 타입 |
and, & |
유니언 타입(Union Types)
두 타입 중 하나만 사용해도 된다.
동일한 속성에 타입을 다르게해서 구분할 수 있는걸 식별 가능한 유니언 타입이라고 한다.
- name이라는 동일한 타입을 줘서 두개의 인터페이스를 유니언 타입으로 사용이 가능하다.
// Union Types
interface Car {
name: "car";
color: string;
start(): void;
}
interface Mobile {
name: "mobile";
color: string;
call(): void;
}
function getGift(gift: Car | Mobile) {
console.log(gift.color);
if (gift.name === "car") {
gift.start();
} else {
gift.call();
}
}
교차 타입(Intersetion Types)
두개의 타입의 속성을 다 기입해줘야한다.
// Intersection Types
// 유니언 타입이 or이라면
// 교차타입은 and를 의미한다.
interface Car9 {
name: string;
start(): void;
}
interface Toy9 {
name: string;
color: string;
price: number;
}
const toyCar: Toy9 & Car9 = {
name: "타요",
start(){},
color: "blue",
price: 1000
}
// Toy와 Car에 모든 속성을 다 기입해줘야한다.
// & == and