[TypeScript(5)]

G·2021년 8월 11일
0

자바스크립트에서 조건문을 배울때 &&나 ||를 사용했는데, 타입스크립트에도 비슷한??게 있다.

Union Type과 Intersection Type이다.

Union Type

OR연산자처럼 사용된다.(|)

function union(movie: string | number) {
    // ...
}

avangers 파라미터는 이제 문자열 타입과 숫자 타입이 모두 올 수 있다!

물론 그냥 타입을 any로 써도 된다. 하지만 any로 쓰게되면 단점이 생기는데 타입관련 코드가 자동으로 생성이 안된다. 타입스크립트 1장에서 정리한 개발 효율 능력의 장점을 못써먹게 된다.

function yearOfRelease(year: string | number) {
    if(typeof year === 'string') {
    return year
   }
   if(typeof year === 'number') {
     year.(number타입 관련해서 자동생성 된다.)
     return year
   }
}

Intersection Type

AND연산자다!(&)

interface Person {
    name: string;
    age: number;
}
interface Developer {
    name: string;
    skill: string;
}
type habasa = Person & Developer;

내가 정의한 habasa의 타입은 이렇게 된다!

{
    name: string;
    age: number;
    skill: string;
}

Union 사용시 주의할점

interface Person {
    name: string;
    age: number;
}
interface Developer {
    name: string;
    skill: string;
}
function habasa(): Person | Developer {
    return {name: 'sungjin', skill: 'react', age: 100}
}

let a = habasa()
a.name
a.skill // error
a.age // error

union 속성은 공통된 속성인 name까지만 접근이 가능하다.

이러한 경우 타입가드를 사용하면 된다!

profile
Drarreg

0개의 댓글