둘 이상의 타입을 허용
하는 타입을 의미
function printId(id: number | string) {
console.log(id);
}
printId(123); // 출력: 123
printId('abc'); // 출력: 'abc'
유니언 타입을 사용하면 다양한 타입을 처리할 수 있는 유연성을 제공합니다.
이를 통해 동일한 동작을 수행하지만 타입이 다른 경우에 유용하게 활용될 수 있습니다. 이를 통해 중복 코드를 제거하고 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.
function incrementNumber(num: number): number {
return num + 1;
}
function incrementString(str: string): string {
return str + '1';
}
//하나의 함수로 정의 가능 > 중복 해결
function increment(value: number | string): number | string {
if (typeof value === 'number') {
return value + 1;
} else {
return value + '1';
}
}
const result1: number = increment(5); // 6
const result2: string = increment('hello'); // 'hello1'
any 타입
any타입으로도 유연성을 제공할 수 있지만 타입스크립트의 장점인 자동완성 기능을 제공하지 않기 때문에 피하는것이 좋다.
function processValue(value: number | string) {
if (typeof value === 'number') {
// 숫자 타입 처리
console.log(value + 1);
} else {
// 문자열 타입 처리
console.log(value.toUpperCase());
}
}
processValue(10); // 출력: 11
processValue('hello'); // 출력: 'HELLO'
TypeScript에서 인터섹션 타입(Intersection Type)은 두 개 이상의 타입을 결합
하여 새로운 타입을 생성하는 방법입니다. 인터섹션 타입은 & 기호를 사용하여 타입을 결합합니다.
이를 통해 다양한 타입의 조합을 처리하거나, 타입 간의 공통된 기능을 활용할 수 있습니다
interface Car {
brand: string;
model: string;
}
interface Electric {
batteryLife: number;
}
type ElectricCar = Car & Electric;
const tesla: ElectricCar = {
brand: 'Tesla',
model: 'Model S',
batteryLife: 300,
};