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 |