[typescript] keyof 연산자를 활용한 타입 가드 함수 작성 방법

TypeScript에서 keyof 연산자를 사용하여 타입 가드 함수를 작성하는 방법에 대해 알아보겠습니다.

keyof 연산자란?

keyof 연산자는 객체의 모든 속성 이름의 유니온 타입을 생성합니다. 이를 통해 객체의 키를 동적으로 가져와 활용할 수 있습니다.

아래는 간단한 예시 코드입니다.

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

type UserKeys = keyof User;
// UserKeys의 타입은 "id" | "username" | "email" 입니다.

keyof를 활용한 타입 가드 함수

keyof 연산자를 사용하여 타입 가드 함수를 작성할 수 있습니다. 다음은 keyof 연산자를 활용한 타입 가드 함수의 예시 코드입니다.

function isValidProperty(obj: any, key: string): key is keyof typeof obj {
  return key in obj;
}

const user: User = {
  id: 1,
  username: "example",
  email: "example@example.com",
};

if (isValidProperty(user, "id")) {
  // 여기서 user.id의 타입이 number로 추론됩니다.
  console.log(user.id);
}

if (isValidProperty(user, "age")) {
  // "age"는 User의 속성이 아니기 때문에 이 블록은 실행되지 않습니다.
}

위 예시에서 isValidProperty 함수는 주어진 객체와 속성 이름을 가지고 타입 가드를 수행합니다.

마무리

이렇게 keyof 연산자를 활용하여 타입 가드 함수를 작성할 수 있습니다. 이를 통해 TypeScript에서 동적인 속성 접근에 대한 안전성을 높일 수 있습니다.

더 자세한 내용은 TypeScript 공식 문서를 참고하시기 바랍니다.