Union, Intersection
Union(|, or)
type Direction = "right" | "left" | "up" | "down"; //string Literal Types
//
const move = function (direction: Direction) {
console.log(direction);
};
move("right");
//
const print = (value: string | number) => {
console.log(value);
};
print(1); // 1(number)
print("1"); // 1(string)
JS
의 논리연산자중OR
을 뜻하는||
와 같이A이거나 B이거나
를 뜻한다.- 위
move
함수의 인자로Direction
타입을 지정하였으며, 해당 인자는right
orleft
orup
ordown
만이 올 수 있게 된다. print
함수의 경우,value
타입은string
이거나number
만이 올 수 있다.
Intersection(&, and)
type Student = {
name: string;
age: number;
};
//
type Staff = {
id: number;
work: () => number; // number값을 리턴
};
//
const WorkInWecode = (value: Student & Staff) => {
const { name, age, id, work } = value;
console.log(name, age, id, work());
};
//
WorkInWecode({
name: "yongmin",
age: 29,
id: 10,
work: () => 8, // yongmin 29 10 10
});
- 여러 타입을 만족하는, 하나의 타입을 의미한다. (
AND
를 뜻하는&&
와 같은 의미로 사용) Student
타입과Staff
타입을 또다른 타입으로 명명하여 사용할 수 있다. (ex>type Person = Student & Staff
)
Reference
- 타입스크립트 공식문서
- 타입스크립트 핸드북
- 드림코딩 엘리님의 TS 및 OPP 강의
'TypeScript' 카테고리의 다른 글
TIL | Interface (0) | 2021.10.23 |
---|---|
TIL | Type Inference (0) | 2021.10.23 |
TIL | Alias (0) | 2021.10.23 |
TIL | Array, readonly, Tuple (0) | 2021.10.23 |
TIL | 함수 타입 이용(type, spread, default, rest) (0) | 2021.10.23 |