TIL: TS - type과 interface

타입스크립트에서 두 인터페이스를 같이 사용해야할 때

interface Phone {
  browser: string;
  call: string;
}

interface Computer {
  vscode: string;
  browser: string;
}

Intersection

intersection은 두 타입의 속성을 모두 가져야 한다.

type Intersection = Computer & Phone;

// intersection은 두 타입의 속성을 '모두' 가져야 한다.
const intersection: Intersection = {
  browser: "chrome",
  vscode: "version 1",
  call: "void call",
};

Union

union은 Phone, Computer, 또는 Phone & Computer 일 수 있다.

type Union = Computer | Phone;

// union은 Phone, Computer, 또는 Phone & Computer 일 수 있다.
const phone: Union = {
  browser: "chrome",
  call: "voice call",
};

const computer: Union = {
  browser: "chrome"
}