Intersection?
- 사전적 의미: 교차로, 교집합, 어떤 것들이 가로지르는 지점
- Intersection type (in Typescript):
여러 타입을 융합하여 만든 하나의 타입. "&" 연산자를 활용하여 정의한다.
융합된 타입들의 요소를 전부 가지고있다.
type예제
type CheeseBurger = {
numBread: number;
numCheese: number;
}
type BeefBurger = {
numBread: number;
numBeef: number;
}
//numBread라는 공통의 요소를 가지고있는 두 타입을 정의했다.
type BeefCheeseBurger = CheeseBurger & BeefBurger;
//& 연산자가 바로 intersection 연산자이다.
// BeefCheeseBurger는 CheeseBurger와 BeefBurger의 intersection 타입이다.
let myBurger: BeefCheeseBurger;
myBurger = {
numBread: 2,
numBeef: 3,
numCheese: 2
}
//BeefCheeseBurger 타입을 갖는 myBurger는
// CheeseBurger와 BeefBurger의 요소를 모두 가지고있어야 한다.
interface예제
type대신 interface를 사용할 수 있다.
interface CheeseBurger = {
numBread: number;
numCheese: number;
}
interface BeefBurger = {
numBread: number;
numBeef: number;
}
interface BeefCheeseBurger = CheeseBurger & BeefBurger;
let myBurger: BeefCheeseBurger;
myBurger = {
numBread: 2,
numBeef: 3,
numCheese: 2
}
//type을 전부 interface로 바꿔도 동일한 기능을 수행한다.
https://batcave.tistory.com/36
인터페이스 알아보기
수학용어 intersection과의 차이
수학에선 교집합을 영어로 intersection이라고 한다.
그래서 왜 union(합집합)이 아닌 intersection으로 명명했는지 의문이 들었다.
하지만 intersection에는 두 개의 대상이 만나 각각의 효과를 모두 갖는 지점이라는 뜻도 있다.
그림출처
'it공부 (개념) > javascript' 카테고리의 다른 글
Javascript 변수선언 키워드 "var"를 사용하지 않는 이유 (0) | 2023.01.25 |
---|---|
union type(유니온 타입)과 type guard(타입가드)란? 개념 및 Typescript예제 (0) | 2023.01.24 |
interface(인터페이스) 개념 및 Typescript 예제 (0) | 2023.01.24 |
Singleton pattern?(싱글톤패턴) 개념 및 Typescript에서 구현하기 (0) | 2023.01.23 |
VSCODE에서 TypeScript 개발 준비하기 (0) | 2023.01.16 |