자바스크립트에서 조건문을 배울때 &&나 ||를 사용했는데, 타입스크립트에도 비슷한??게 있다.
Union Type과 Intersection 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
}
}
AND연산자다!(&)
interface Person {
name: string;
age: number;
}
interface Developer {
name: string;
skill: string;
}
type habasa = Person & Developer;
내가 정의한 habasa의 타입은 이렇게 된다!
{
name: string;
age: number;
skill: string;
}
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까지만 접근이 가능하다.
이러한 경우 타입가드를 사용하면 된다!