Union타입

interface가 아닌 type을 이용해 사용할 때, | 연산자로 or을 표현 가능

type StringOrNumber = string | number

const a:StringOrNumber = 'str'
const b:StringOrNumber = 123
const c:StringOrNumber = true // error

Union 타입 판별

너무 많은 타입들을 유니온 타입으로 허용하게 되면, 타입 추론이 어려워짐

union 타입을 이용할 때는 안전하게 type guard로 한 번 타입을 검사/판별 하고 사용




Intersection 타입

interface가 아닌 type을 이용해 사용할 때, & 연산자로 and로 표현 가능

type GenderType = 'M' | 'F'

type Person = {
    name: string
    age: number
}

type Me = {
    name: string
    genderType: GenderType
}

const obj: Person & Me = {
    name: 'Jang',
    // age: 99,
    genderType: 'M'
} // 하나라도 빠지면 and조건을 충족하지 않기 때문에 error
profile
⛅🛩️ 먼 길을 돌아서 온 프론트엔드 개발자 ✈️⛅

0개의 댓글