유니언 타입과 인터섹션 타입의 차이점

soohyunee·2023년 5월 12일
0

TypeScript

목록 보기
15/20
post-thumbnail

1. 유니언 타입의 특징

interface Developer {
	name: string;
	skill: string;
}

interface Person {
	name: string;
	age: number;
}

function askSomeone(someone: Developer | Person) {
	someone.name;
	/*
	someone.skill; 접근 불가능
	someone.age; 접근 불가능
	*/
}

askSomeone({ name: 'soo', skill: 'ts' });
askSomeone({ name: 'soo', age: 100 });
  • | 연산자를 사용하여 타입들을 연결
  • 타입들의 공통된 속성에만 접근이 가능
  • 연결된 타입의 규격 중 하나의 타입의 규격을 넣어주면 됨
  • 함수의 전달인자로 타입의 데이터에 따라 넣어서 전달해줌
  • 상대적으로 유니언 타입이 더 많이 쓰임
  • 함수 내부에서의 타입 가드를 사용해야 하는 작업이 필요하지만, 전달인자로 넘기는 타입에서는 선택 가능

2. 인터섹션 타입의 특징

interface Developer {
	name: string;
	skill: string;
}

interface Person {
	name: string;
	age: number;
}

function askSomeone(someone: Developer & Person) {
	someone.name;
	someone.skill;
	someone.age;
}

askSomeone({ name: 'soo', skill: 'ts', age: 100 });
  • & 연산자를 사용하여 타입들을 연결
  • 타입들의 모든 속성에 접근이 가능
  • 연결된 타입들을 합친 또 다른 하나의 타입
  • 함수 호출 시 전달인자로 연결된 타입들을 모두 합한 데이터를 넘겨야 함
  • 모든 타입의 모두 포함하는 새로운 타입을 만드는 것

참고 : 타입스크립트 입문 - 기초부터 실전까지

profile
FrontEnd Developer

0개의 댓글