Typescript 연산자

boyeonJ·2023년 7월 5일
0

TypeScript

목록 보기
3/12

Typescript 연산자


유니언 타입

둘 이상의 타입을 허용하는 타입을 의미

function printId(id: number | string) {
  console.log(id);
}

printId(123); // 출력: 123
printId('abc'); // 출력: 'abc'

1. 장점

유니언 타입을 사용하면 다양한 타입을 처리할 수 있는 유연성을 제공합니다.

이를 통해 동일한 동작을 수행하지만 타입이 다른 경우에 유용하게 활용될 수 있습니다. 이를 통해 중복 코드를 제거하고 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.

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,
};

0개의 댓글