Intersection 이란?
| 기호였던 Union 과 반대되는 개념이다.
- Union 은 OR 였다면, Intersection 은 AND 개념이다.
& 기호를 통해 묶어준다.
interface Person {
name: string;
age: number;
}
interface Company {
location: string;
companyName: string;
}
type BusinessMan = Person & Company; // 계속 & 로 엮어나갈 수 있음
// 모든 프로퍼티를 다 채워야만 에러가 나지 안ㄶ음
let businessMan: BusinessMan = {
name: "jake",
age: 10,
location: "seoul",
companyName: "super startup",
};
- 위의 코드 예시에서
BusinessMan 타입의 변수를 선언했다면 반드시 모든 프로퍼티를 다 채워야 에러가 없다.
Primitive 타입을 Intersection 으로 묶는다면?
- Primitive 타입을 이용해 intersection 을 만들어버리면
never 타입이 된다.
type numberAndString = number & string; // never 타입
