대수타입
여러가지 타입을 합성해서 만드는 타입이다.
합집합(Union)타입
let test:string | number;
바( | )를 이용해서 정의한다.
유니온타입으로 묶인 타입들은 슈퍼-서브관계가 아니어도 상관없음
- 배열에도 사용 가능
let Arr : (string | number | boolean)[]=["test",12,true]
- 객체 type에도 사용 가능
type One = {
name:string;
type:string;
}
type Two = {
name:string;
price:number;
}
type Unions = One | Two
예시로 든 type Unions인 객체들은 크게 세 가지로 나뉠 수 있다.
- name과 type 프로퍼티 두 가지만 갖거나
- name과 price 프로퍼티 두 가지만 갖거나
- name과 type과 price 프로퍼트 세 가지 모두 갖거나
교집합(intersection)타입
let test: string & number;
& 을 이용한다.
유니온타입에서는 타입들간의 관계가 중요하지 않았지만 인터섹션타입은 타입끼리 겹치는 부분이 필요하다.
때문에 기본 타입들간의 인터섹션은 잘 이용하지 않고 객체 타입에서 많이 이용함.
type Type1 = {
name: string;
color: string;
}
type Type2 = {
name:string;
skill:string
}
type Intersection = Type1 & Type2
& 연산자를 알고있다면 교집합타입 이해가 쉽다.
Type1과 Type2의 프로퍼티를 모두 갖고있어야 한다는 뜻
'개발 > typescript' 카테고리의 다른 글
타입스크립트 기초 문법 - 서로소 유니온 타입 (1) | 2023.12.26 |
---|---|
타입스크립트 기초 문법 - 타입 추론, 타입 단언, 타입 좁히기 (1) | 2023.12.26 |
타입스크립트 기초 문법 - 타입 호환, 객체 호환 (1) | 2023.12.22 |
타입스크립트 기초 문법 - 타입의 종류(2) (0) | 2023.12.21 |
타입스크립트 기초 문법 - 타입의 종류(1) (0) | 2023.12.19 |