유니온 타입
자바스크립트의 OR 연산자(||)와 같이 A이거나 B이다 라는 의미의 타입이다.
function logText(text: string | number) {...}
인터섹션 타입
인터섹션 타입(Intersection Type)은 여러 타입을 모두 만족하는 하나의 타입을 말한다.
interface Person {
name: string;
age: number;
}
interface Developer {
name: string;
skill: number;
}
type Capt = Person & Developer;
인터페이스의 타입 정의를 & 연산자를 사용해서 합친 후 Capt이라는 타입에 할당한 코드다.
Capt 타입은 아래 코드와 같다.
{
name: string;
age: number;
skill: string;
}
유니온 타입 주의점 (클릭시 이동)
타입스크립트 관점에서 introduce()함수를 호출하는 시점에 Person타입이 올지 Developer타입이 올지 알 수 없기 때문에 어느 타입이 들어오든 간에 오류가 나지 않는 방향으로 추론하게 된다. 즉 ||(합집합)이 아니라 &&(교집합)인 원소들을 받아들이는것.
interface Person {
name: string;
age: number;
}
interface Developer {
name: string;
skill: string;
}
function introduce(someone: Person | Developer) {
someone.name; // O 정상 동작
someone.age; // X 타입 오류
someone.skill; // X 타입 오류
}
'프로그래밍 > typescsript' 카테고리의 다른 글
타입스크립트의 Generic(제네릭) (0) | 2022.11.23 |
---|---|
타입스크립트의 클래스 (0) | 2022.11.23 |
타입스크립트의 Enums (이넘) (0) | 2022.11.23 |
타입스크립트의 인터페이스 (0) | 2022.11.21 |
타입스크립트의 함수 (0) | 2022.11.21 |
댓글