TypeScript

TIL | Union, Intersection

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 or left or up or down만이 올 수 있게 된다.
  • 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

'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