[typescript] 타입스크립트에서의 keyof와 typeof의 차이점
타입스크립트에서 keyof
와 typeof
는 두 가지 다른 유형의 연산자로 사용됩니다. 이들의 사용 및 기능에 대해 알아보겠습니다.
keyof
연산자
keyof
연산자는 객체 유형에서 속성 이름의 유니온 유형(union type)을 가져옵니다.
예를 들어, 다음과 같은 인터페이스가 있다고 가정해 봅시다.
interface Person {
name: string;
age: number;
address: string;
}
이때 keyof Person
은 "name" | "age" | "address"
가 됩니다.
typeof
연산자
typeof
연산자는 객체 유형의 실제 값을 가져옵니다.
예를 들어, 다음과 같이 객체가 생성되었다고 가정해 봅시다.
const person = {
name: 'John',
age: 30,
address: '123 Main St',
};
이때 typeof person
은 다음과 같습니다.
{
name: string;
age: number;
address: string;
}
차이점
keyof
연산자는 속성 이름의 유니온 유형을 가져오고, typeof
연산자는 객체 유형의 실제 값을 가져옵니다.
따라서, keyof
는 속성 이름에 대한 유니온 유형을 사용하여 속성 이름을 다룰 수 있게 해주며, typeof
는 객체의 유형을 가져와서 유형을 정의하는 데 사용될 수 있습니다.
이러한 연산자들을 사용하여 타입스크립트 코드를 보다 유연하고 안전하게 작성할 수 있습니다.
결론
keyof
와 typeof
연산자는 객체 유형에서 다른 정보를 가져오며, 각각 유용하게 활용될 수 있습니다. 개발자는 이러한 연산자를 상황에 맞게 적절히 사용하여 타입스크립트 코드를 더욱 효율적으로 작성할 수 있습니다.