TIL 48 | Union, Intersection

ym j·2021년 7월 5일
0

TypeScript

목록 보기
6/11
post-thumbnail

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

profile
블로그를 이전하였습니다 => "https://jymini.tistory.com"

0개의 댓글