[typescript] 타입스크립트에서의 데이터 유효성 검사와 리팩토링

본 문서에서는 타입스크립트에서 데이터 유효성을 검사하고, 코드를 리팩토링하여 더욱 안전하고 효율적인 코드를 작성하는 방법에 대해 다룹니다.

1. 데이터 유효성 검사

타입스크립트에서 데이터 유효성을 검사하기 위해 보편적으로 사용되는 방법은 타입스크립트 인터페이스타입 가드입니다.

1.1. 타입스크립트 인터페이스 활용

interface User {
  id: number;
  username: string;
  email: string;
}

function createUser(user: User): void {
  // 유효성 검사
  if (user.id && user.username && user.email) {
    // 유효한 사용자 데이터
    console.log('Valid user:', user);
  } else {
    // 유효하지 않은 사용자 데이터
    console.error('Invalid user data');
  }
}

1.2. 타입 가드 활용

function isNumber(value: any): value is number {
  return typeof value === 'number';
}

function isString(value: any): value is string {
  return typeof value === 'string';
}

function createUser(id: any, username: any, email: any): void {
  // 유효성 검사
  if (isNumber(id) && isString(username) && isString(email)) {
    // 유효한 사용자 데이터
    console.log('Valid user:', { id, username, email });
  } else {
    // 유효하지 않은 사용자 데이터
    console.error('Invalid user data');
  }
}

2. 코드 리팩토링

좀 더 가독성이 높고 유지보수가 쉬운 코드를 작성하기 위해 리팩토링을 할 수 있습니다.

2.1. 유틸리티 함수 활용

function createUser(id: any, username: any, email: any): void {
  // 유효성 검사
  if (isValidUserData(id, username, email)) {
    // 유효한 사용자 데이터
    console.log('Valid user:', { id, username, email });
  } else {
    // 유효하지 않은 사용자 데이터
    console.error('Invalid user data');
  }
}

function isValidUserData(id: any, username: any, email: any): boolean {
  return isNumber(id) && isString(username) && isString(email);
}

2.2. 선택적 매개변수 활용

type User = {
  id: number;
  username: string;
  email: string;
}

function createUser(user: Partial<User>): void {
  // 유효성 검사
  if (user.id && user.username && user.email) {
    // 유효한 사용자 데이터
    console.log('Valid user:', user);
  } else {
    // 유효하지 않은 사용자 데이터
    console.error('Invalid user data');
  }
}

결론

타입스크립트를 사용하여 데이터 유효성을 검사하고 코드를 리팩토링함으로써 안전하고 효율적인 코드를 작성할 수 있습니다. 유효성 검사리팩토링을 통해 코드의 안정성과 가독성을 높일 수 있습니다.

참고 문헌: