[TypeScript] 유니언 타입 & 인터섹션 타입

2024. 11. 9. 01:28·TypeScript
728x90
728x90

유니언 타입 (Union Type)

  - 여러 개의 타입 중 하나를 가질 수 있도록 허용하는 타입

  - `|` 기호를 사용하여 여러 타입을 결합함

// string 또는 number 값만 할당할 수 있음
let value: string | number;

value = "hello"; 
value = 42;      
value = true;    // 에러
// string 또는 number 인자만 받을 수 있음
function format(value: string | number) {
	...
}

 

# 타입을 구분할 때 사용하는 연산자

  1) in

     - 객체에 해당 속성이 있으면 true, 아니면 false를 반환하는 연산자

// person 객체에 'age'라는 속성이 존재하면 true, 아니면 false를 반환함
'age' in person

  2) typeof

     - 해당 데이터가 어떤 타입을 갖고 있는지를 문자열로 반환하는 연산자

// phone 변수의 타입을 문자열로 반환
typeof phone

인터섹션 타입 (Intersection Type)

  - 타입 2개를 하나로 합쳐서 사용할 수 있는 타입

  - `&` 기호를 사용하여 여러 타입을 결합함

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

interface Employee {
    company: string;
    position: string;
}

// Person과 Employee의 필수 속성을 모두 가진 객체만 인자로 받을 수 있음
function introduce(personEmployee: Person & Employee) {
    ...
}

const personEmployee = {
    name: "Alice",
    age: 30,
    company: "Tech Corp",
    position: "Developer"
};

introduce(personEmployee);

 

  - 결합된 인터페이스가 가진 필수 속성 중 하나라도 누락한다면 에러가 발생함

// Employee 인터페이스의 필수 속성인 company가 누락되어 에러 발생
const personEmployee: PersonEmployee = {
    name: "Alice",
    age: 30,
    position: "Developer"
};

 

320x100
반응형
저작자표시 비영리 변경금지 (새창열림)

'TypeScript' 카테고리의 다른 글

[TypeScript] 타입 추론 (Type Inference) & 타입 단언 (Type Assertion)  (0) 2024.11.12
[TypeScript] 타입 별칭 (Type Alias)  (0) 2024.11.10
[TypeScript] 인터페이스 (Interface)  (0) 2024.11.08
[TypeScript] 기본 타입  (4) 2024.11.07
[TypeScript] 개요  (3) 2024.11.07
'TypeScript' 카테고리의 다른 글
  • [TypeScript] 타입 추론 (Type Inference) & 타입 단언 (Type Assertion)
  • [TypeScript] 타입 별칭 (Type Alias)
  • [TypeScript] 인터페이스 (Interface)
  • [TypeScript] 기본 타입
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (385)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • IT Notes (13)
      • Error Notes (17)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
      • etc. (0)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    jQuery
    Android
    git
    tailwindcss
    php
    js
    Hotkeys
    개발일지
    SWAGGER
    Codeigniter
    티스토리챌린지
    http
    SQL
    HTML
    Wordpress
    typeScript
    Swing
    오블완
    jsp
    SpringBoot
    zapier
    면접
    vuejs
    java
    errorNote
    SEO
    C#
    CSS
    cs
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[TypeScript] 유니언 타입 & 인터섹션 타입
상단으로

티스토리툴바