[typescript] 타입 가드를 사용한 모델 검증 방법

TypeScript를 사용하면 정적 타입 검사를 통해 코드의 안정성을 높일 수 있습니다. 하지만 때로는 입력된 모델을 런타임에서도 검증해야 하는 상황이 발생할 수 있습니다.

이때 타입 가드를 사용하면 효과적으로 모델을 검증할 수 있습니다.

타입 가드란?

타입 가드(Type Guard)는 특정한 타입으로 값의 타입을 좁히는 역할을 하는 TypeScript의 기능입니다. 이를 활용하여 모델의 속성을 검증하고 유효성을 확인할 수 있습니다.

interface Car {
  brand: string;
  model: string;
  year: number;
}

function validateCar(model: any): model is Car {
  return (
    typeof model.brand === 'string' &&
    typeof model.model === 'string' &&
    typeof model.year === 'number'
  );
}

위 예제에서 validateCar 함수는 Car 타입으로 좁히는 역할을 하는 타입 가드입니다.

타입 가드를 활용한 모델 검증

위에서 정의한 Car 인터페이스를 가지고 타입 가드를 사용하여 모델을 검증해보겠습니다.

function processCar(model: any) {
  if (validateCar(model)) {
    // model은 Car 타입으로 좁혀졌으므로 안전하게 Car의 속성을 사용할 수 있습니다.
    console.log(`${model.brand} ${model.model} (${model.year})`);
  } else {
    console.log('잘못된 모델입니다.');
  }
}

let myCar = { brand: 'Tesla', model: 'Model 3', year: 2021 };
processCar(myCar); // 출력: Tesla Model 3 (2021)

processCar 함수에서 validateCar 함수를 사용하여 모델을 검증하고, 유효한 모델인 경우 안전하게 Car의 속성을 사용할 수 있습니다.

타입 가드를 활용하면 TypeScript에서 모델을 런타임에서도 안전하게 검증할 수 있으며, 코드의 안정성을 높일 수 있습니다.

결론

타입 가드를 사용하면 TypeScript에서 런타임 환경에서도 모델을 안전하게 검증할 수 있습니다. 모델이 유효한지 확인하여 안전하게 사용할 수 있으며, 코드의 안정성을 확보할 수 있습니다.

타입 가드는 TypeScript의 강력한 기능 중 하나이며, 모델 검증 등 다양한 상황에서 유용하게 활용할 수 있습니다.

참고: TypeScript 공식 문서 - 타입 가드