웹개발/TypeScript
TypeScript "Type" - Union
bergerac
2025. 4. 19. 09:11
Union 타입( 유니언 타입)
- 의미: 변수 하나가 여러 타입 중 하나의 값을 가질 수 있도록 함.
- 표현법: 타입1 | 타입2 | ...
- 사용 목적: 타입의 확장성을 확보하면서도 타입 안정성 유지 가능.
type VariableType = string | number | boolean | string[];
이런식으로 지정하면 value는 문자열, 숫자, 불리언, 문자열 배열 중 하나만 가질 수 있다.
UnionType과 Type Alias 의 활용
>>user type 선언
type User = {
// 회원 객체가 가져야 할 속성
id: string;
password: string;
name: string;
address: string;
}
>>admin type 선언
type Admin = { // administrator: 관리자
// 관리자 객체가 가져야 할 속성
id: string;
password: string;
department: string; // (회사) 부서
}
>>이러한 두가지 계정의 타입을 가지는 사이트 계정인 경우 타입 별칭을 사용하여 해당 속성을 둘다 가지는 Union타입을 선언할 수 있다.
type AdminUser = Admin | User;
타입가드 사용
유니언 타입은 공통된 속성만 바로 접근 가능하기 때문에 각 타입에 고유한 속성을 사용하려면 조건문을 통해 타입을 좁혀주는 **타입 가드(type guard)**가 필요
function getAge(age: number | string) {
if (typeof age === 'number') {
return age.toFixed(); // 숫자인 경우 반올림
} else {
return age.toUpperCase(); // 문자열인 경우 대문자로 변환
}
}
console.log(getAge(12.345)); // '12' ← 소수점 반올림
console.log(getAge('12 years old')); // '12 YEARS OLD' ← 대문자 변환